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