+ Dali::WindowContainer windows;
+
+ for(auto iter = mWindows.begin(); iter != mWindows.end(); ++iter)
+ {
+ // Downcast to Dali::Window
+ Dali::Window window(dynamic_cast<Dali::Internal::Adaptor::Window*>(*iter));
+ if(window)
+ {
+ windows.push_back(window);
+ }
+ }
+
+ return windows;
+}
+
+Dali::SceneHolderList Adaptor::GetSceneHolders()
+{
+ Dali::SceneHolderList sceneHolderList;
+
+ for(auto iter = mWindows.begin(); iter != mWindows.end(); ++iter)
+ {
+ sceneHolderList.push_back(Dali::Integration::SceneHolder(*iter));
+ }
+
+ return sceneHolderList;
+}
+
+Dali::Internal::Adaptor::SceneHolder* Adaptor::GetWindow(Dali::Actor& actor)
+{
+ Dali::Integration::Scene scene = Dali::Integration::Scene::Get(actor);
+
+ for(auto window : mWindows)
+ {
+ if(scene == window->GetScene())
+ {
+ return window;
+ }
+ }
+
+ return nullptr;
+}
+
+void Adaptor::AddWindow(Internal::Adaptor::SceneHolder* window)
+{
+ if(window)
+ {
+ mWindows.push_back(window);
+
+ Dali::Integration::SceneHolder newWindow(window);
+ mWindowCreatedSignal.Emit(newWindow);
+ }
+}
+
+void Adaptor::RemoveWindow(Internal::Adaptor::SceneHolder* window)
+{
+ auto iter = std::find(mWindows.begin(), mWindows.end(), window);
+ if(iter != mWindows.end())
+ {
+ mWindows.erase(iter);
+ }
+}
+
+void Adaptor::RegisterProcessor(Integration::Processor& processor, bool postProcessor)
+{
+ Integration::Core& core = mTestApplication->GetCore();
+ tet_printf("Adaptor::RegisterProcessor : %s\n", processor.GetProcessorName().data());
+ core.RegisterProcessor(processor, postProcessor);
+}
+
+void Adaptor::UnregisterProcessor(Integration::Processor& processor, bool postProcessor)
+{
+ Integration::Core& core = mTestApplication->GetCore();
+ tet_printf("Adaptor::UnregisterProcessor : %s\n", processor.GetProcessorName().data());
+ core.UnregisterProcessor(processor, postProcessor);
+}
+
+void Adaptor::SetApplication(Dali::TestApplication& testApplication)
+{
+ mTestApplication = &testApplication;