Fix the build fail of toolkit-test-util
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / toolkit-timer.cpp
index 2f1ce14..f9c89da 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
 #include "toolkit-timer.h"
 
 // INTERNAL INCLUDES
-#include <dali/public-api/common/dali-common.h>
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
 #include <dali/public-api/object/base-object.h>
 #include <dali/public-api/signals/dali-signal.h>
 
@@ -35,6 +35,8 @@ class Timer;
 typedef IntrusivePtr<Timer> TimerPtr;
 
 Dali::Timer::TimerSignalType gTickSignal;
+int gTimerCount = 0;
+bool gKeepTimersRunning = false;
 
 /**
  * Implementation of the timer
@@ -69,6 +71,7 @@ private: // Implementation
 private: // Data
 
   unsigned int mInterval;
+  bool mRunning;
 };
 
 inline Timer& GetImplementation(Dali::Timer& timer)
@@ -96,20 +99,25 @@ TimerPtr Timer::New( unsigned int milliSec )
 }
 
 Timer::Timer( unsigned int milliSec )
-: mInterval( milliSec )
+: mInterval( milliSec ),
+  mRunning( false )
 {
+  ++gTimerCount;
 }
 
 Timer::~Timer()
 {
+  --gTimerCount;
 }
 
 void Timer::Start()
 {
+  mRunning = true;
 }
 
 void Timer::Stop()
 {
+  mRunning = false;
 }
 
 void Timer::SetInterval( unsigned int interval )
@@ -124,7 +132,7 @@ unsigned int Timer::GetInterval() const
 
 bool Timer::IsRunning() const
 {
-  return true;
+  return mRunning;
 }
 
 bool Timer::Tick()
@@ -141,10 +149,13 @@ Dali::Timer::TimerSignalType& Timer::TickSignal()
 
 void Timer::MockEmitSignal()
 {
-  gTickSignal.Emit();
+  if( gTimerCount > 1 )
+  {
+    // Only emit the signal if we have more than just the timer created in the test function
+    gTickSignal.Emit();
+  }
 }
 
-
 } // namespace Adaptor
 
 } // namespace Internal
@@ -186,6 +197,7 @@ Timer::~Timer()
 void Timer::Start()
 {
   Internal::Adaptor::GetImplementation( *this ).Start();
+  Dali::Internal::Adaptor::gKeepTimersRunning = true;
 }
 
 void Timer::Stop()
@@ -227,3 +239,24 @@ void Timer::MockEmitSignal()
 
 } // namespace Dali
 
+
+namespace Test
+{
+
+int GetTimerCount()
+{
+  return Dali::Internal::Adaptor::gTimerCount;
+}
+
+void EmitGlobalTimerSignal()
+{
+  // @todo Multiplex timers properly.
+  Dali::Internal::Adaptor::gKeepTimersRunning = Dali::Internal::Adaptor::gTickSignal.Emit();
+}
+
+bool AreTimersRunning()
+{
+  return Dali::Internal::Adaptor::gKeepTimersRunning;
+}
+
+}