• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #include "athena/activity/activity_manager_impl.h"
6 
7 #include "athena/activity/public/activity.h"
8 #include "athena/activity/public/activity_factory.h"
9 #include "athena/test/athena_test_base.h"
10 #include "ui/aura/window.h"
11 
12 namespace athena {
13 
14 typedef test::AthenaTestBase ActivityManagerTest;
15 
TEST_F(ActivityManagerTest,Basic)16 TEST_F(ActivityManagerTest, Basic) {
17   ActivityManagerImpl* activity_manager =
18       static_cast<ActivityManagerImpl*>(ActivityManager::Get());
19   ActivityFactory* factory = ActivityFactory::Get();
20 
21   Activity* activity1 =
22       factory->CreateWebActivity(NULL, base::string16(), GURL());
23   EXPECT_EQ(1, activity_manager->num_activities());
24 
25   // Activity is not visible when created.
26   EXPECT_FALSE(activity1->GetWindow()->TargetVisibility());
27   Activity::Show(activity1);
28   EXPECT_TRUE(activity1->GetWindow()->TargetVisibility());
29 
30   Activity* activity2 =
31       factory->CreateWebActivity(NULL, base::string16(), GURL());
32   EXPECT_EQ(2, activity_manager->num_activities());
33 
34   Activity::Delete(activity1);
35   EXPECT_EQ(1, activity_manager->num_activities());
36 
37   // Deleting the activity's window should delete the activity itself.
38   delete activity2->GetWindow();
39   EXPECT_EQ(0, activity_manager->num_activities());
40 }
41 
TEST_F(ActivityManagerTest,GetActivityForWindow)42 TEST_F(ActivityManagerTest, GetActivityForWindow) {
43   ActivityManager* manager = ActivityManager::Get();
44   ActivityFactory* factory = ActivityFactory::Get();
45 
46   Activity* activity1 =
47       factory->CreateWebActivity(NULL, base::string16(), GURL());
48   Activity* activity2 =
49       factory->CreateWebActivity(NULL, base::string16(), GURL());
50 
51   EXPECT_EQ(activity1, manager->GetActivityForWindow(activity1->GetWindow()));
52   EXPECT_EQ(activity2, manager->GetActivityForWindow(activity2->GetWindow()));
53 
54   EXPECT_EQ(NULL, manager->GetActivityForWindow(NULL));
55 
56   scoped_ptr<aura::Window> window = CreateTestWindow(NULL, gfx::Rect());
57   EXPECT_EQ(NULL, manager->GetActivityForWindow(window.get()));
58 }
59 
60 }  // namespace athena
61