activity_manager_unittest.cc revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/// Copyright 2014 The Chromium Authors. All rights reserved.
2591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// found in the LICENSE file.
45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "athena/activity/activity_manager_impl.h"
65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "athena/activity/public/activity.h"
85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "athena/activity/public/activity_factory.h"
95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "athena/test/athena_test_base.h"
105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "ui/aura/window.h"
115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace athena {
135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)typedef test::AthenaTestBase ActivityManagerTest;
155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)TEST_F(ActivityManagerTest, Basic) {
175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  ActivityManagerImpl* activity_manager =
185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)      static_cast<ActivityManagerImpl*>(ActivityManager::Get());
195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  ActivityFactory* factory = ActivityFactory::Get();
205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  Activity* activity1 =
225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)      factory->CreateWebActivity(NULL, base::string16(), GURL());
235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  EXPECT_EQ(1, activity_manager->num_activities());
245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  // Activity is not visible when created.
265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  EXPECT_FALSE(activity1->GetWindow()->TargetVisibility());
275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  Activity::Show(activity1);
285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  EXPECT_TRUE(activity1->GetWindow()->TargetVisibility());
295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  Activity* activity2 =
315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)      factory->CreateWebActivity(NULL, base::string16(), GURL());
325d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)  EXPECT_EQ(2, activity_manager->num_activities());
335d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)
345d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)  Activity::Delete(activity1);
355d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)  EXPECT_EQ(1, activity_manager->num_activities());
365d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)
375d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)  // Deleting the activity's window should delete the activity itself.
38591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch  delete activity2->GetWindow();
395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  EXPECT_EQ(0, activity_manager->num_activities());
405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
41591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)TEST_F(ActivityManagerTest, GetActivityForWindow) {
43591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch  ActivityManager* manager = ActivityManager::Get();
445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  ActivityFactory* factory = ActivityFactory::Get();
455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  Activity* activity1 =
475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)      factory->CreateWebActivity(NULL, base::string16(), GURL());
485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  Activity* activity2 =
49f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)      factory->CreateWebActivity(NULL, base::string16(), GURL());
505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  EXPECT_EQ(activity1, manager->GetActivityForWindow(activity1->GetWindow()));
525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  EXPECT_EQ(activity2, manager->GetActivityForWindow(activity2->GetWindow()));
535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  EXPECT_EQ(NULL, manager->GetActivityForWindow(NULL));
555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  scoped_ptr<aura::Window> window = CreateTestWindow(NULL, gfx::Rect());
575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  EXPECT_EQ(NULL, manager->GetActivityForWindow(window.get()));
585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}  // namespace athena
61926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)