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