Chromium Code Reviews| 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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 70 // AppActivity: | 70 // AppActivity: |
| 71 virtual views::WebView* GetWebView() OVERRIDE { return NULL; } | 71 virtual views::WebView* GetWebView() OVERRIDE { return NULL; } |
| 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 NULL; } |
| 80 virtual void CreateOverviewModeImage() OVERRIDE {} | 80 virtual gfx::ImageSkia GetOverviewModeImage() OVERRIDE { |
| 81 return gfx::ImageSkia(); | |
| 82 } | |
| 81 | 83 |
| 82 private: | 84 private: |
| 83 // 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. |
| 84 AppActivityRegistry* app_activity_registry_; | 86 AppActivityRegistry* app_activity_registry_; |
| 85 | 87 |
| 86 // The title of the activity. | 88 // The title of the activity. |
| 87 base::string16 title_; | 89 base::string16 title_; |
| 88 | 90 |
| 89 // Our view. | 91 // Our view. |
| 90 views::View* view_; | 92 views::View* view_; |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 271 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); | 273 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); |
| 272 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); | 274 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); |
| 273 AppActivityRegistry* app_activity_registry = | 275 AppActivityRegistry* app_activity_registry = |
| 274 app_activity->app_activity_registry(); | 276 app_activity->app_activity_registry(); |
| 275 EXPECT_EQ(1, app_activity_registry->NumberOfActivities()); | 277 EXPECT_EQ(1, app_activity_registry->NumberOfActivities()); |
| 276 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity->GetCurrentState()); | 278 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity->GetCurrentState()); |
| 277 | 279 |
| 278 // Calling Unload now should not do anything since at least one activity in | 280 // Calling Unload now should not do anything since at least one activity in |
| 279 // the registry is still visible. | 281 // the registry is still visible. |
| 280 app_activity_registry->Unload(); | 282 app_activity_registry->Unload(); |
| 283 RunAllPendingInMessageLoop(); | |
| 281 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); | 284 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); |
| 282 | 285 |
| 283 // After setting our activity to unloaded however the application should get | 286 // After setting our activity to unloaded however the application should get |
| 284 // unloaded as requested. | 287 // unloaded as requested. |
| 285 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); | 288 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); |
| 286 app_activity_registry->Unload(); | 289 app_activity_registry->Unload(); |
| 290 RunAllPendingInMessageLoop(); | |
| 287 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); | 291 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); |
| 288 | 292 |
| 289 // Check that our created application is gone, and instead a proxy got | 293 // Check that our created application is gone, and instead a proxy got |
| 290 // created. | 294 // created. |
| 291 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); | 295 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); |
| 292 ASSERT_EQ(app_activity_registry, | 296 ASSERT_EQ(app_activity_registry, |
| 293 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); | 297 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); |
| 294 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); | 298 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); |
| 295 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); | 299 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); |
| 296 ASSERT_TRUE(activity_proxy); | 300 ASSERT_TRUE(activity_proxy); |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 318 EXPECT_EQ(2, GetActivityPosition(app_activity2b)); | 322 EXPECT_EQ(2, GetActivityPosition(app_activity2b)); |
| 319 EXPECT_EQ(1, GetActivityPosition(app_activity2a)); | 323 EXPECT_EQ(1, GetActivityPosition(app_activity2a)); |
| 320 EXPECT_EQ(0, GetActivityPosition(app_activity1a)); | 324 EXPECT_EQ(0, GetActivityPosition(app_activity1a)); |
| 321 | 325 |
| 322 // Unload an app and make sure that the proxy is in the newest activity slot. | 326 // Unload an app and make sure that the proxy is in the newest activity slot. |
| 323 AppActivityRegistry* app_activity_registry = | 327 AppActivityRegistry* app_activity_registry = |
| 324 app_activity2a->app_activity_registry(); | 328 app_activity2a->app_activity_registry(); |
| 325 app_activity2a->SetCurrentState(Activity::ACTIVITY_UNLOADED); | 329 app_activity2a->SetCurrentState(Activity::ACTIVITY_UNLOADED); |
| 326 app_activity2b->SetCurrentState(Activity::ACTIVITY_UNLOADED); | 330 app_activity2b->SetCurrentState(Activity::ACTIVITY_UNLOADED); |
| 327 app_activity2a->app_activity_registry()->Unload(); | 331 app_activity2a->app_activity_registry()->Unload(); |
| 332 RunAllPendingInMessageLoop(); | |
| 328 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); | 333 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); |
| 329 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); | 334 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); |
| 330 RunAllPendingInMessageLoop(); | 335 RunAllPendingInMessageLoop(); |
| 331 | 336 |
| 332 EXPECT_EQ(2, GetActivityPosition(app_activity1b)); | 337 EXPECT_EQ(2, GetActivityPosition(app_activity1b)); |
| 333 EXPECT_EQ(1, GetActivityPosition(activity_proxy)); | 338 EXPECT_EQ(1, GetActivityPosition(activity_proxy)); |
| 334 EXPECT_EQ(0, GetActivityPosition(app_activity1a)); | 339 EXPECT_EQ(0, GetActivityPosition(app_activity1a)); |
| 335 EXPECT_EQ(0, test_extensions_delegate()->restart_called()); | 340 EXPECT_EQ(0, test_extensions_delegate()->restart_called()); |
| 336 | 341 |
| 337 DeleteActivity(activity_proxy); | 342 DeleteActivity(activity_proxy); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 354 app_activity1->app_activity_registry(); | 359 app_activity1->app_activity_registry(); |
| 355 EXPECT_EQ(app_activity_registry, app_activity2->app_activity_registry()); | 360 EXPECT_EQ(app_activity_registry, app_activity2->app_activity_registry()); |
| 356 EXPECT_EQ(app_activity_registry, app_activity3->app_activity_registry()); | 361 EXPECT_EQ(app_activity_registry, app_activity3->app_activity_registry()); |
| 357 EXPECT_EQ(3, app_activity_registry->NumberOfActivities()); | 362 EXPECT_EQ(3, app_activity_registry->NumberOfActivities()); |
| 358 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity1->GetCurrentState()); | 363 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity1->GetCurrentState()); |
| 359 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity2->GetCurrentState()); | 364 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity2->GetCurrentState()); |
| 360 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity3->GetCurrentState()); | 365 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity3->GetCurrentState()); |
| 361 | 366 |
| 362 // After setting all activities to UNLOADED the application should unload. | 367 // After setting all activities to UNLOADED the application should unload. |
| 363 app_activity1->SetCurrentState(Activity::ACTIVITY_UNLOADED); | 368 app_activity1->SetCurrentState(Activity::ACTIVITY_UNLOADED); |
| 364 app_activity1->app_activity_registry()->Unload(); | 369 app_activity1->app_activity_registry()->Unload(); |
|
sadrul
2014/09/12 16:30:14
Looks like AppActivity::SetCurrentState() takes ca
Mr4D (OOO till 08-26)
2014/09/12 20:11:26
Done.
| |
| 370 RunAllPendingInMessageLoop(); | |
| 365 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); | 371 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); |
| 366 app_activity2->SetCurrentState(Activity::ACTIVITY_UNLOADED); | 372 app_activity2->SetCurrentState(Activity::ACTIVITY_UNLOADED); |
| 367 app_activity2->app_activity_registry()->Unload(); | 373 app_activity2->app_activity_registry()->Unload(); |
| 374 RunAllPendingInMessageLoop(); | |
| 368 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); | 375 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); |
| 369 app_activity3->SetCurrentState(Activity::ACTIVITY_UNLOADED); | 376 app_activity3->SetCurrentState(Activity::ACTIVITY_UNLOADED); |
| 370 app_activity3->app_activity_registry()->Unload(); | 377 app_activity3->app_activity_registry()->Unload(); |
| 378 RunAllPendingInMessageLoop(); | |
| 371 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); | 379 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); |
| 372 | 380 |
| 373 // Now there should only be the proxy activity left. | 381 // Now there should only be the proxy activity left. |
| 374 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); | 382 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); |
| 375 ASSERT_EQ(app_activity_registry, | 383 ASSERT_EQ(app_activity_registry, |
| 376 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); | 384 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); |
| 377 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); | 385 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); |
| 378 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); | 386 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); |
| 379 ASSERT_TRUE(activity_proxy); | 387 ASSERT_TRUE(activity_proxy); |
| 380 EXPECT_NE(app_activity1, activity_proxy); | 388 EXPECT_NE(app_activity1, activity_proxy); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 399 DisableResourceManager(); | 407 DisableResourceManager(); |
| 400 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); | 408 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
| 401 | 409 |
| 402 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); | 410 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); |
| 403 AppActivityRegistry* app_activity_registry = | 411 AppActivityRegistry* app_activity_registry = |
| 404 app_activity->app_activity_registry(); | 412 app_activity->app_activity_registry(); |
| 405 | 413 |
| 406 // Unload the activity. | 414 // Unload the activity. |
| 407 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); | 415 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); |
| 408 app_activity_registry->Unload(); | 416 app_activity_registry->Unload(); |
| 417 RunAllPendingInMessageLoop(); | |
| 409 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); | 418 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); |
| 410 | 419 |
| 411 // Try to activate the activity again. This will force the application to | 420 // Try to activate the activity again. This will force the application to |
| 412 // reload. | 421 // reload. |
| 413 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); | 422 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); |
| 414 activity_proxy->SetCurrentState(Activity::ACTIVITY_VISIBLE); | 423 activity_proxy->SetCurrentState(Activity::ACTIVITY_VISIBLE); |
| 415 EXPECT_EQ(1, test_extensions_delegate()->restart_called()); | 424 EXPECT_EQ(1, test_extensions_delegate()->restart_called()); |
| 416 | 425 |
| 417 // However - the restart in this test framework does not really restart and | 426 // However - the restart in this test framework does not really restart and |
| 418 // all objects should be still there.. | 427 // all objects should be still there.. |
| 419 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); | 428 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); |
| 420 EXPECT_TRUE(app_activity_registry->unloaded_activity_proxy()); | 429 EXPECT_TRUE(app_activity_registry->unloaded_activity_proxy()); |
| 421 Activity::Delete(app_activity_registry->unloaded_activity_proxy()); | 430 Activity::Delete(app_activity_registry->unloaded_activity_proxy()); |
| 422 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); | 431 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
| 423 } | 432 } |
| 424 | 433 |
| 425 } // namespace test | 434 } // namespace test |
| 426 } // namespace athena | 435 } // namespace athena |
| OLD | NEW |