Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(436)

Side by Side Diff: athena/content/app_activity_unittest.cc

Issue 548633005: Adding overview / layer framework to Activities so that unloaded / sleeping activities can be shown… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « athena/content/app_activity_registry.cc ('k') | athena/content/content_proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 AppActivityRegistry* app_activity_registry() { 46 AppActivityRegistry* app_activity_registry() {
47 return app_activity_registry_; 47 return app_activity_registry_;
48 } 48 }
49 49
50 // Activity: 50 // Activity:
51 virtual ActivityViewModel* GetActivityViewModel() OVERRIDE { 51 virtual ActivityViewModel* GetActivityViewModel() OVERRIDE {
52 return this; 52 return this;
53 } 53 }
54 virtual void SetCurrentState(Activity::ActivityState state) OVERRIDE { 54 virtual void SetCurrentState(Activity::ActivityState state) OVERRIDE {
55 current_state_ = state; 55 current_state_ = state;
56 if (state == ACTIVITY_UNLOADED)
57 app_activity_registry_->Unload();
56 } 58 }
57 virtual ActivityState GetCurrentState() OVERRIDE { 59 virtual ActivityState GetCurrentState() OVERRIDE {
58 return current_state_; 60 return current_state_;
59 } 61 }
60 virtual bool IsVisible() OVERRIDE { 62 virtual bool IsVisible() OVERRIDE {
61 return true; 63 return true;
62 } 64 }
63 virtual ActivityMediaState GetMediaState() OVERRIDE { 65 virtual ActivityMediaState GetMediaState() OVERRIDE {
64 return Activity::ACTIVITY_MEDIA_STATE_NONE; 66 return Activity::ACTIVITY_MEDIA_STATE_NONE;
65 } 67 }
66 virtual aura::Window* GetWindow() OVERRIDE { 68 virtual aura::Window* GetWindow() OVERRIDE {
67 return view_->GetWidget()->GetNativeWindow(); 69 return view_->GetWidget()->GetNativeWindow();
68 } 70 }
69 71
70 // AppActivity: 72 // AppActivity:
71 virtual views::WebView* GetWebView() OVERRIDE { return NULL; } 73 virtual views::WebView* GetWebView() OVERRIDE { return NULL; }
72 74
73 // ActivityViewModel: 75 // ActivityViewModel:
74 virtual void Init() OVERRIDE {} 76 virtual void Init() OVERRIDE {}
75 virtual SkColor GetRepresentativeColor() const OVERRIDE { return 0; } 77 virtual SkColor GetRepresentativeColor() const OVERRIDE { return 0; }
76 virtual base::string16 GetTitle() const OVERRIDE { return title_; } 78 virtual base::string16 GetTitle() const OVERRIDE { return title_; }
77 virtual bool UsesFrame() const OVERRIDE { return true; } 79 virtual bool UsesFrame() const OVERRIDE { return true; }
78 virtual views::View* GetContentsView() OVERRIDE { return view_; } 80 virtual views::View* GetContentsView() OVERRIDE { return view_; }
79 virtual views::Widget* CreateWidget() OVERRIDE { return NULL; } 81 virtual views::Widget* CreateWidget() OVERRIDE { return NULL; }
80 virtual void CreateOverviewModeImage() OVERRIDE {} 82 virtual gfx::ImageSkia GetOverviewModeImage() OVERRIDE {
83 return gfx::ImageSkia();
84 }
81 85
82 private: 86 private:
83 // If known the registry which holds all activities for the associated app. 87 // If known the registry which holds all activities for the associated app.
84 AppActivityRegistry* app_activity_registry_; 88 AppActivityRegistry* app_activity_registry_;
85 89
86 // The title of the activity. 90 // The title of the activity.
87 base::string16 title_; 91 base::string16 title_;
88 92
89 // Our view. 93 // Our view.
90 views::View* view_; 94 views::View* view_;
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); 275 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1);
272 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 276 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications());
273 AppActivityRegistry* app_activity_registry = 277 AppActivityRegistry* app_activity_registry =
274 app_activity->app_activity_registry(); 278 app_activity->app_activity_registry();
275 EXPECT_EQ(1, app_activity_registry->NumberOfActivities()); 279 EXPECT_EQ(1, app_activity_registry->NumberOfActivities());
276 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity->GetCurrentState()); 280 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity->GetCurrentState());
277 281
278 // Calling Unload now should not do anything since at least one activity in 282 // Calling Unload now should not do anything since at least one activity in
279 // the registry is still visible. 283 // the registry is still visible.
280 app_activity_registry->Unload(); 284 app_activity_registry->Unload();
285 RunAllPendingInMessageLoop();
281 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); 286 EXPECT_EQ(0, test_extensions_delegate()->unload_called());
282 287
283 // After setting our activity to unloaded however the application should get 288 // After setting our activity to unloaded however the application should get
284 // unloaded as requested. 289 // unloaded as requested.
285 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); 290 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED);
286 app_activity_registry->Unload(); 291 RunAllPendingInMessageLoop();
287 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); 292 EXPECT_EQ(1, test_extensions_delegate()->unload_called());
288 293
289 // Check that our created application is gone, and instead a proxy got 294 // Check that our created application is gone, and instead a proxy got
290 // created. 295 // created.
291 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 296 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications());
292 ASSERT_EQ(app_activity_registry, 297 ASSERT_EQ(app_activity_registry,
293 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); 298 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL));
294 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); 299 EXPECT_EQ(0, app_activity_registry->NumberOfActivities());
295 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); 300 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy();
296 ASSERT_TRUE(activity_proxy); 301 ASSERT_TRUE(activity_proxy);
(...skipping 20 matching lines...) Expand all
317 EXPECT_EQ(3, GetActivityPosition(app_activity1b)); 322 EXPECT_EQ(3, GetActivityPosition(app_activity1b));
318 EXPECT_EQ(2, GetActivityPosition(app_activity2b)); 323 EXPECT_EQ(2, GetActivityPosition(app_activity2b));
319 EXPECT_EQ(1, GetActivityPosition(app_activity2a)); 324 EXPECT_EQ(1, GetActivityPosition(app_activity2a));
320 EXPECT_EQ(0, GetActivityPosition(app_activity1a)); 325 EXPECT_EQ(0, GetActivityPosition(app_activity1a));
321 326
322 // Unload an app and make sure that the proxy is in the newest activity slot. 327 // Unload an app and make sure that the proxy is in the newest activity slot.
323 AppActivityRegistry* app_activity_registry = 328 AppActivityRegistry* app_activity_registry =
324 app_activity2a->app_activity_registry(); 329 app_activity2a->app_activity_registry();
325 app_activity2a->SetCurrentState(Activity::ACTIVITY_UNLOADED); 330 app_activity2a->SetCurrentState(Activity::ACTIVITY_UNLOADED);
326 app_activity2b->SetCurrentState(Activity::ACTIVITY_UNLOADED); 331 app_activity2b->SetCurrentState(Activity::ACTIVITY_UNLOADED);
327 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
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 RunAllPendingInMessageLoop();
365 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); 370 EXPECT_EQ(0, test_extensions_delegate()->unload_called());
366 app_activity2->SetCurrentState(Activity::ACTIVITY_UNLOADED); 371 app_activity2->SetCurrentState(Activity::ACTIVITY_UNLOADED);
367 app_activity2->app_activity_registry()->Unload(); 372 RunAllPendingInMessageLoop();
368 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); 373 EXPECT_EQ(0, test_extensions_delegate()->unload_called());
369 app_activity3->SetCurrentState(Activity::ACTIVITY_UNLOADED); 374 app_activity3->SetCurrentState(Activity::ACTIVITY_UNLOADED);
370 app_activity3->app_activity_registry()->Unload(); 375 RunAllPendingInMessageLoop();
371 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); 376 EXPECT_EQ(1, test_extensions_delegate()->unload_called());
372 377
373 // Now there should only be the proxy activity left. 378 // Now there should only be the proxy activity left.
374 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 379 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications());
375 ASSERT_EQ(app_activity_registry, 380 ASSERT_EQ(app_activity_registry,
376 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); 381 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL));
377 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); 382 EXPECT_EQ(0, app_activity_registry->NumberOfActivities());
378 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); 383 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy();
379 ASSERT_TRUE(activity_proxy); 384 ASSERT_TRUE(activity_proxy);
380 EXPECT_NE(app_activity1, activity_proxy); 385 EXPECT_NE(app_activity1, activity_proxy);
(...skipping 17 matching lines...) Expand all
398 // position. 403 // position.
399 DisableResourceManager(); 404 DisableResourceManager();
400 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); 405 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications());
401 406
402 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); 407 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1);
403 AppActivityRegistry* app_activity_registry = 408 AppActivityRegistry* app_activity_registry =
404 app_activity->app_activity_registry(); 409 app_activity->app_activity_registry();
405 410
406 // Unload the activity. 411 // Unload the activity.
407 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); 412 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED);
408 app_activity_registry->Unload(); 413 RunAllPendingInMessageLoop();
409 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); 414 EXPECT_EQ(1, test_extensions_delegate()->unload_called());
410 415
411 // Try to activate the activity again. This will force the application to 416 // Try to activate the activity again. This will force the application to
412 // reload. 417 // reload.
413 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); 418 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy();
414 activity_proxy->SetCurrentState(Activity::ACTIVITY_VISIBLE); 419 activity_proxy->SetCurrentState(Activity::ACTIVITY_VISIBLE);
415 EXPECT_EQ(1, test_extensions_delegate()->restart_called()); 420 EXPECT_EQ(1, test_extensions_delegate()->restart_called());
416 421
417 // However - the restart in this test framework does not really restart and 422 // However - the restart in this test framework does not really restart and
418 // all objects should be still there.. 423 // all objects should be still there..
419 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 424 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications());
420 EXPECT_TRUE(app_activity_registry->unloaded_activity_proxy()); 425 EXPECT_TRUE(app_activity_registry->unloaded_activity_proxy());
421 Activity::Delete(app_activity_registry->unloaded_activity_proxy()); 426 Activity::Delete(app_activity_registry->unloaded_activity_proxy());
422 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); 427 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications());
423 } 428 }
424 429
425 } // namespace test 430 } // namespace test
426 } // namespace athena 431 } // namespace athena
OLDNEW
« no previous file with comments | « athena/content/app_activity_registry.cc ('k') | athena/content/content_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698