1c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// found in the LICENSE file. 4c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 5c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "chrome/browser/drive/drive_notification_manager_factory.h" 6c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 7c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "base/command_line.h" 8c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "base/compiler_specific.h" 9c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "chrome/browser/chromeos/profiles/profile_helper.h" 10c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "chrome/browser/profiles/profile.h" 11c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "chrome/common/chrome_switches.h" 12c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "chrome/test/base/in_process_browser_test.h" 13c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "chromeos/chromeos_switches.h" 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chromeos/login/user_names.h" 156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "components/user_manager/user_manager.h" 16c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "testing/gtest/include/gtest/gtest.h" 17c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 18c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochnamespace drive { 19c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 20c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochclass DriveNotificationManagerFactoryLoginScreenBrowserTest 21c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch : public InProcessBrowserTest { 22c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch protected: 23c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 24c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch command_line->AppendSwitch(chromeos::switches::kLoginManager); 25c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch command_line->AppendSwitchASCII(chromeos::switches::kLoginProfile, "user"); 26c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch } 27c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}; 28c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 29c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Verify that no DriveNotificationManager is instantiated for the sign-in 30c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// profile on the login screen. 31c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen MurdochIN_PROC_BROWSER_TEST_F(DriveNotificationManagerFactoryLoginScreenBrowserTest, 32c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch NoDriveNotificationManager) { 33c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch Profile* signin_profile = 34c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch chromeos::ProfileHelper::GetSigninProfile()->GetOriginalProfile(); 35c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch EXPECT_FALSE(DriveNotificationManagerFactory::FindForBrowserContext( 36c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch signin_profile)); 37c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} 38c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 39c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochclass DriveNotificationManagerFactoryGuestBrowserTest 40c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch : public InProcessBrowserTest { 41c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch protected: 42c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 43c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch command_line->AppendSwitch(chromeos::switches::kGuestSession); 44c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch command_line->AppendSwitch(::switches::kIncognito); 45c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch command_line->AppendSwitchASCII(chromeos::switches::kLoginProfile, "user"); 46c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch command_line->AppendSwitchASCII(chromeos::switches::kLoginUser, 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch chromeos::login::kGuestUserName); 48c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch } 49c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}; 50c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 51c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Verify that no DriveNotificationManager is instantiated for the sign-in 52c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// profile or the guest profile while a guest session is in progress. 53c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen MurdochIN_PROC_BROWSER_TEST_F(DriveNotificationManagerFactoryGuestBrowserTest, 54c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch NoDriveNotificationManager) { 556e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) user_manager::UserManager* user_manager = user_manager::UserManager::Get(); 56c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch EXPECT_TRUE(user_manager->IsLoggedInAsGuest()); 576e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) Profile* guest_profile = 586e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) chromeos::ProfileHelper::Get() 596e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ->GetProfileByUserUnsafe(user_manager->GetActiveUser()) 606e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ->GetOriginalProfile(); 61c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch Profile* signin_profile = 62c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch chromeos::ProfileHelper::GetSigninProfile()->GetOriginalProfile(); 63c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch EXPECT_FALSE(DriveNotificationManagerFactory::FindForBrowserContext( 64c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch guest_profile)); 65c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch EXPECT_FALSE(DriveNotificationManagerFactory::FindForBrowserContext( 66c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch signin_profile)); 67c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} 68c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 69c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} // namespace drive 70