Index: sky/tools/tester/tester.cc |
diff --git a/sky/tools/tester/tester.cc b/sky/tools/tester/tester.cc |
deleted file mode 100644 |
index ae2de39eef1f42ae03e3f46f1d476a9a7233777d..0000000000000000000000000000000000000000 |
--- a/sky/tools/tester/tester.cc |
+++ /dev/null |
@@ -1,171 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include <iostream> |
-#include "base/bind.h" |
-#include "base/memory/weak_ptr.h" |
-#include "mojo/application/application_runner_chromium.h" |
-#include "mojo/public/c/system/main.h" |
-#include "mojo/public/cpp/application/application_delegate.h" |
-#include "mojo/public/cpp/application/application_impl.h" |
-#include "mojo/public/cpp/application/connect.h" |
-#include "mojo/public/cpp/application/service_provider_impl.h" |
-#include "mojo/services/input_events/public/interfaces/input_events.mojom.h" |
-#include "mojo/services/view_manager/public/cpp/view_manager.h" |
-#include "mojo/services/view_manager/public/cpp/view_manager_delegate.h" |
-#include "mojo/services/view_manager/public/cpp/view_observer.h" |
-#include "services/window_manager/window_manager_app.h" |
-#include "services/window_manager/window_manager_delegate.h" |
-#include "sky/tools/tester/test_runner.h" |
- |
-namespace sky { |
-namespace tester { |
-namespace { |
- |
-struct UrlData { |
- std::string url; |
- std::string expected_pixel_hash; |
- bool enable_pixel_dumping = false; |
-}; |
- |
-void WaitForURL(UrlData& data) { |
- // A test name is formated like file:///path/to/test'--pixel-test'pixelhash |
- std::cin >> data.url; |
- |
- std::string pixel_switch; |
- std::string::size_type separator_position = data.url.find('\''); |
- if (separator_position != std::string::npos) { |
- pixel_switch = data.url.substr(separator_position + 1); |
- data.url.erase(separator_position); |
- } |
- |
- std::string pixel_hash; |
- separator_position = pixel_switch.find('\''); |
- if (separator_position != std::string::npos) { |
- pixel_hash = pixel_switch.substr(separator_position + 1); |
- pixel_switch.erase(separator_position); |
- } |
- |
- data.enable_pixel_dumping = pixel_switch == "--pixel-test"; |
- data.expected_pixel_hash = pixel_hash; |
-} |
- |
-} // namespace |
- |
-class SkyTester : public mojo::ApplicationDelegate, |
- public mojo::ViewManagerDelegate, |
- public window_manager::WindowManagerDelegate, |
- public mojo::ViewObserver, |
- public TestRunnerClient { |
- public: |
- SkyTester() |
- : window_manager_app_(new window_manager::WindowManagerApp(this, this)), |
- root_(NULL), |
- content_(NULL), |
- weak_ptr_factory_(this) {} |
- ~SkyTester() override {} |
- |
- private: |
- // Overridden from mojo::ApplicationDelegate: |
- void Initialize(mojo::ApplicationImpl* impl) override { |
- window_manager_app_->Initialize(impl); |
- |
- if (impl->args().size() >= 2) |
- url_from_args_ = impl->args()[1]; |
- } |
- bool ConfigureIncomingConnection( |
- mojo::ApplicationConnection* connection) override { |
- window_manager_app_->ConfigureIncomingConnection(connection); |
- if (test_runner_) |
- connection->AddService(test_runner_.get()); |
- return true; |
- } |
- |
- // Overridden from mojo::ViewManagerDelegate: |
- void OnEmbed(mojo::View* root, |
- mojo::InterfaceRequest<mojo::ServiceProvider> services, |
- mojo::ServiceProviderPtr exposed_services) override { |
- root_ = root; |
- root_->AddObserver(this); |
- |
- content_ = root->view_manager()->CreateView(); |
- content_->SetBounds(root_->bounds()); |
- root_->AddChild(content_); |
- content_->SetVisible(true); |
- |
- std::cout << "#READY\n"; |
- std::cout.flush(); |
- ScheduleRun(); |
- } |
- |
- // Overridden from window_manager::WindowManagerDelegate: |
- void Embed(const mojo::String& url, |
- mojo::InterfaceRequest<mojo::ServiceProvider> services, |
- mojo::ServiceProviderPtr exposed_services) override {} |
- |
- void OnViewManagerDisconnected(mojo::ViewManager* view_manager) override { |
- root_ = NULL; |
- } |
- |
- void OnViewDestroyed(mojo::View* view) override { |
- view->RemoveObserver(this); |
- } |
- |
- void OnViewBoundsChanged(mojo::View* view, |
- const mojo::Rect& old_bounds, |
- const mojo::Rect& new_bounds) override { |
- content_->SetBounds(new_bounds); |
- } |
- |
- void ScheduleRun() { |
- base::MessageLoop::current()->PostTask(FROM_HERE, |
- base::Bind(&SkyTester::Run, weak_ptr_factory_.GetWeakPtr())); |
- } |
- |
- void Run() { |
- DCHECK(!test_runner_); |
- |
- UrlData data; |
- if (url_from_args_.length()) { |
- data.url = url_from_args_; |
- } else { |
- WaitForURL(data); |
- } |
- |
- test_runner_.reset(new TestRunner(this, content_, data.url, |
- data.enable_pixel_dumping)); |
- } |
- |
- void OnTestComplete() override { |
- test_runner_.reset(); |
- if (url_from_args_.length()) |
- exit(0); |
- ScheduleRun(); |
- } |
- |
- void DispatchInputEvent(mojo::EventPtr event) override { |
- window_manager_app_->DispatchInputEventToView(content_, event.Pass()); |
- } |
- |
- scoped_ptr<window_manager::WindowManagerApp> window_manager_app_; |
- |
- std::string url_from_args_; |
- |
- mojo::View* root_; |
- mojo::View* content_; |
- |
- scoped_ptr<TestRunner> test_runner_; |
- |
- base::WeakPtrFactory<SkyTester> weak_ptr_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SkyTester); |
-}; |
- |
-} // namespace tester |
-} // namespace examples |
- |
-MojoResult MojoMain(MojoHandle application_request) { |
- mojo::ApplicationRunnerChromium runner(new sky::tester::SkyTester); |
- return runner.Run(application_request); |
-} |