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)