| OLD | NEW |
| 1 /// Copyright 2014 The Chromium Authors. All rights reserved. | 1 /// Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "athena/activity/public/activity_factory.h" | 5 #include "athena/activity/public/activity_factory.h" |
| 6 #include "athena/activity/public/activity_manager.h" | 6 #include "athena/activity/public/activity_manager.h" |
| 7 #include "athena/content/app_activity.h" | 7 #include "athena/content/app_activity.h" |
| 8 #include "athena/content/app_activity_registry.h" | 8 #include "athena/content/app_activity_registry.h" |
| 9 #include "athena/content/public/app_registry.h" | 9 #include "athena/content/public/app_registry.h" |
| 10 #include "athena/extensions/public/extensions_delegate.h" | 10 #include "athena/extensions/public/extensions_delegate.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 const char kDummyApp2[] = "bbbbbbb"; | 30 const char kDummyApp2[] = "bbbbbbb"; |
| 31 | 31 |
| 32 // A dummy test app activity which works without content / ShellAppWindow. | 32 // A dummy test app activity which works without content / ShellAppWindow. |
| 33 class TestAppActivity : public AppActivity { | 33 class TestAppActivity : public AppActivity { |
| 34 public: | 34 public: |
| 35 explicit TestAppActivity(const std::string& app_id) | 35 explicit TestAppActivity(const std::string& app_id) |
| 36 : AppActivity(app_id), | 36 : AppActivity(app_id), |
| 37 view_(new views::View()), | 37 view_(new views::View()), |
| 38 current_state_(ACTIVITY_VISIBLE) { | 38 current_state_(ACTIVITY_VISIBLE) { |
| 39 app_activity_registry_ = | 39 app_activity_registry_ = |
| 40 AppRegistry::Get()->GetAppActivityRegistry(app_id, NULL); | 40 AppRegistry::Get()->GetAppActivityRegistry(app_id, nullptr); |
| 41 app_activity_registry_->RegisterAppActivity(this); | 41 app_activity_registry_->RegisterAppActivity(this); |
| 42 } | 42 } |
| 43 virtual ~TestAppActivity() { | 43 virtual ~TestAppActivity() { |
| 44 app_activity_registry_->UnregisterAppActivity(this); | 44 app_activity_registry_->UnregisterAppActivity(this); |
| 45 } | 45 } |
| 46 | 46 |
| 47 AppActivityRegistry* app_activity_registry() { | 47 AppActivityRegistry* app_activity_registry() { |
| 48 return app_activity_registry_; | 48 return app_activity_registry_; |
| 49 } | 49 } |
| 50 | 50 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 69 virtual aura::Window* GetWindow() override { | 69 virtual aura::Window* GetWindow() override { |
| 70 return view_->GetWidget()->GetNativeWindow(); | 70 return view_->GetWidget()->GetNativeWindow(); |
| 71 } | 71 } |
| 72 | 72 |
| 73 // ActivityViewModel: | 73 // ActivityViewModel: |
| 74 virtual void Init() override {} | 74 virtual void Init() override {} |
| 75 virtual SkColor GetRepresentativeColor() const override { return 0; } | 75 virtual SkColor GetRepresentativeColor() const override { return 0; } |
| 76 virtual base::string16 GetTitle() const override { return title_; } | 76 virtual base::string16 GetTitle() const override { return title_; } |
| 77 virtual bool UsesFrame() const override { return true; } | 77 virtual bool UsesFrame() const override { return true; } |
| 78 virtual views::View* GetContentsView() override { return view_; } | 78 virtual views::View* GetContentsView() override { return view_; } |
| 79 virtual views::Widget* CreateWidget() override { return NULL; } | 79 virtual views::Widget* CreateWidget() override { return nullptr; } |
| 80 virtual gfx::ImageSkia GetOverviewModeImage() override { | 80 virtual gfx::ImageSkia GetOverviewModeImage() override { |
| 81 return gfx::ImageSkia(); | 81 return gfx::ImageSkia(); |
| 82 } | 82 } |
| 83 | 83 |
| 84 private: | 84 private: |
| 85 // If known the registry which holds all activities for the associated app. | 85 // If known the registry which holds all activities for the associated app. |
| 86 AppActivityRegistry* app_activity_registry_; | 86 AppActivityRegistry* app_activity_registry_; |
| 87 | 87 |
| 88 // The title of the activity. | 88 // The title of the activity. |
| 89 base::string16 title_; | 89 base::string16 title_; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 101 class TestExtensionsDelegate : public ExtensionsDelegate { | 101 class TestExtensionsDelegate : public ExtensionsDelegate { |
| 102 public: | 102 public: |
| 103 TestExtensionsDelegate() : unload_called_(0), restart_called_(0) {} | 103 TestExtensionsDelegate() : unload_called_(0), restart_called_(0) {} |
| 104 virtual ~TestExtensionsDelegate() {} | 104 virtual ~TestExtensionsDelegate() {} |
| 105 | 105 |
| 106 int unload_called() const { return unload_called_; } | 106 int unload_called() const { return unload_called_; } |
| 107 int restart_called() const { return restart_called_; } | 107 int restart_called() const { return restart_called_; } |
| 108 | 108 |
| 109 // ExtensionsDelegate: | 109 // ExtensionsDelegate: |
| 110 virtual content::BrowserContext* GetBrowserContext() const override { | 110 virtual content::BrowserContext* GetBrowserContext() const override { |
| 111 return NULL; | 111 return nullptr; |
| 112 } | 112 } |
| 113 virtual const extensions::ExtensionSet& GetInstalledExtensions() override { | 113 virtual const extensions::ExtensionSet& GetInstalledExtensions() override { |
| 114 return extension_set_; | 114 return extension_set_; |
| 115 } | 115 } |
| 116 // Unload an application. Returns true when unloaded. | 116 // Unload an application. Returns true when unloaded. |
| 117 virtual bool UnloadApp(const std::string& app_id) override { | 117 virtual bool UnloadApp(const std::string& app_id) override { |
| 118 unload_called_++; | 118 unload_called_++; |
| 119 // Since we did not close anything we let the framework clean up. | 119 // Since we did not close anything we let the framework clean up. |
| 120 return false; | 120 return false; |
| 121 } | 121 } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 136 extensions::ExtensionSet extension_set_; | 136 extensions::ExtensionSet extension_set_; |
| 137 | 137 |
| 138 DISALLOW_COPY_AND_ASSIGN(TestExtensionsDelegate); | 138 DISALLOW_COPY_AND_ASSIGN(TestExtensionsDelegate); |
| 139 }; | 139 }; |
| 140 | 140 |
| 141 } // namespace | 141 } // namespace |
| 142 | 142 |
| 143 // Our testing base. | 143 // Our testing base. |
| 144 class AppActivityTest : public AthenaTestBase { | 144 class AppActivityTest : public AthenaTestBase { |
| 145 public: | 145 public: |
| 146 AppActivityTest() : test_extensions_delegate_(NULL) {} | 146 AppActivityTest() : test_extensions_delegate_(nullptr) {} |
| 147 virtual ~AppActivityTest() {} | 147 virtual ~AppActivityTest() {} |
| 148 | 148 |
| 149 // AthenaTestBase: | 149 // AthenaTestBase: |
| 150 virtual void SetUp() override { | 150 virtual void SetUp() override { |
| 151 AthenaTestBase::SetUp(); | 151 AthenaTestBase::SetUp(); |
| 152 // Create and install our TestAppContentDelegate with instrumentation. | 152 // Create and install our TestAppContentDelegate with instrumentation. |
| 153 ExtensionsDelegate::Shutdown(); | 153 ExtensionsDelegate::Shutdown(); |
| 154 // The instance will be deleted by ExtensionsDelegate::Shutdown(). | 154 // The instance will be deleted by ExtensionsDelegate::Shutdown(). |
| 155 test_extensions_delegate_ = new TestExtensionsDelegate(); | 155 test_extensions_delegate_ = new TestExtensionsDelegate(); |
| 156 } | 156 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 DISALLOW_COPY_AND_ASSIGN(AppActivityTest); | 197 DISALLOW_COPY_AND_ASSIGN(AppActivityTest); |
| 198 }; | 198 }; |
| 199 | 199 |
| 200 // Only creates one activity and destroys it. | 200 // Only creates one activity and destroys it. |
| 201 TEST_F(AppActivityTest, OneAppActivity) { | 201 TEST_F(AppActivityTest, OneAppActivity) { |
| 202 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); | 202 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
| 203 { | 203 { |
| 204 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); | 204 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); |
| 205 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); | 205 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); |
| 206 EXPECT_EQ(1, app_activity->app_activity_registry()->NumberOfActivities()); | 206 EXPECT_EQ(1, app_activity->app_activity_registry()->NumberOfActivities()); |
| 207 EXPECT_EQ(AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL), | 207 EXPECT_EQ(AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, nullptr), |
| 208 app_activity->app_activity_registry()); | 208 app_activity->app_activity_registry()); |
| 209 DeleteActivity(app_activity); | 209 DeleteActivity(app_activity); |
| 210 } | 210 } |
| 211 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); | 211 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
| 212 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); | 212 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); |
| 213 EXPECT_EQ(0, test_extensions_delegate()->restart_called()); | 213 EXPECT_EQ(0, test_extensions_delegate()->restart_called()); |
| 214 } | 214 } |
| 215 | 215 |
| 216 // Test running of two applications. | 216 // Test running of two applications. |
| 217 TEST_F(AppActivityTest, TwoAppsWithOneActivityEach) { | 217 TEST_F(AppActivityTest, TwoAppsWithOneActivityEach) { |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 // After setting our activity to unloaded however the application should get | 290 // After setting our activity to unloaded however the application should get |
| 291 // unloaded as requested. | 291 // unloaded as requested. |
| 292 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); | 292 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); |
| 293 RunAllPendingInMessageLoop(); | 293 RunAllPendingInMessageLoop(); |
| 294 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); | 294 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); |
| 295 | 295 |
| 296 // Check that our created application is gone, and instead a proxy got | 296 // Check that our created application is gone, and instead a proxy got |
| 297 // created. | 297 // created. |
| 298 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); | 298 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); |
| 299 ASSERT_EQ(app_activity_registry, | 299 ASSERT_EQ(app_activity_registry, |
| 300 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); | 300 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, nullptr)); |
| 301 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); | 301 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); |
| 302 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); | 302 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); |
| 303 ASSERT_TRUE(activity_proxy); | 303 ASSERT_TRUE(activity_proxy); |
| 304 EXPECT_NE(app_activity, activity_proxy); | 304 EXPECT_NE(app_activity, activity_proxy); |
| 305 EXPECT_EQ(Activity::ACTIVITY_UNLOADED, activity_proxy->GetCurrentState()); | 305 EXPECT_EQ(Activity::ACTIVITY_UNLOADED, activity_proxy->GetCurrentState()); |
| 306 EXPECT_EQ(0, test_extensions_delegate()->restart_called()); | 306 EXPECT_EQ(0, test_extensions_delegate()->restart_called()); |
| 307 | 307 |
| 308 // Close the proxy object and make sure that nothing bad happens. | 308 // Close the proxy object and make sure that nothing bad happens. |
| 309 DeleteActivity(activity_proxy); | 309 DeleteActivity(activity_proxy); |
| 310 | 310 |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 app_activity2->SetCurrentState(Activity::ACTIVITY_UNLOADED); | 380 app_activity2->SetCurrentState(Activity::ACTIVITY_UNLOADED); |
| 381 RunAllPendingInMessageLoop(); | 381 RunAllPendingInMessageLoop(); |
| 382 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); | 382 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); |
| 383 app_activity3->SetCurrentState(Activity::ACTIVITY_UNLOADED); | 383 app_activity3->SetCurrentState(Activity::ACTIVITY_UNLOADED); |
| 384 RunAllPendingInMessageLoop(); | 384 RunAllPendingInMessageLoop(); |
| 385 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); | 385 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); |
| 386 | 386 |
| 387 // Now there should only be the proxy activity left. | 387 // Now there should only be the proxy activity left. |
| 388 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); | 388 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); |
| 389 ASSERT_EQ(app_activity_registry, | 389 ASSERT_EQ(app_activity_registry, |
| 390 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); | 390 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, nullptr)); |
| 391 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); | 391 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); |
| 392 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); | 392 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); |
| 393 ASSERT_TRUE(activity_proxy); | 393 ASSERT_TRUE(activity_proxy); |
| 394 EXPECT_NE(app_activity1, activity_proxy); | 394 EXPECT_NE(app_activity1, activity_proxy); |
| 395 EXPECT_NE(app_activity2, activity_proxy); | 395 EXPECT_NE(app_activity2, activity_proxy); |
| 396 EXPECT_NE(app_activity3, activity_proxy); | 396 EXPECT_NE(app_activity3, activity_proxy); |
| 397 EXPECT_EQ(Activity::ACTIVITY_UNLOADED, activity_proxy->GetCurrentState()); | 397 EXPECT_EQ(Activity::ACTIVITY_UNLOADED, activity_proxy->GetCurrentState()); |
| 398 | 398 |
| 399 // Close the proxy object and make sure that nothing bad happens. | 399 // Close the proxy object and make sure that nothing bad happens. |
| 400 DeleteActivity(activity_proxy); | 400 DeleteActivity(activity_proxy); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 431 // However - the restart in this test framework does not really restart and | 431 // However - the restart in this test framework does not really restart and |
| 432 // all objects should be still there.. | 432 // all objects should be still there.. |
| 433 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); | 433 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); |
| 434 EXPECT_TRUE(app_activity_registry->unloaded_activity_proxy()); | 434 EXPECT_TRUE(app_activity_registry->unloaded_activity_proxy()); |
| 435 Activity::Delete(app_activity_registry->unloaded_activity_proxy()); | 435 Activity::Delete(app_activity_registry->unloaded_activity_proxy()); |
| 436 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); | 436 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
| 437 } | 437 } |
| 438 | 438 |
| 439 } // namespace test | 439 } // namespace test |
| 440 } // namespace athena | 440 } // namespace athena |
| OLD | NEW |