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 "base/files/file_path.h" 6#include "base/path_service.h" 7#include "chrome/browser/apps/app_browsertest_util.h" 8#include "chrome/browser/extensions/component_loader.h" 9#include "chrome/browser/extensions/extension_service.h" 10#include "extensions/browser/extension_registry.h" 11#include "extensions/test/extension_test_message_listener.h" 12#include "grit/browser_resources.h" 13 14using extensions::Extension; 15using extensions::ExtensionRegistry; 16 17namespace { 18const char* kWallpaperManagerExtensionID = "obklkkbkpaoaejdabbfldmcfplpdgolj"; 19} // namespace 20 21class WallpaperManagerBrowserTest : public extensions::PlatformAppBrowserTest { 22 public: 23 WallpaperManagerBrowserTest(); 24 virtual ~WallpaperManagerBrowserTest(); 25 26 protected: 27 void VerifyWallpaperManagerLoaded(); 28 29 private: 30 void LoadAndLaunchWallpaperManager(); 31}; 32 33WallpaperManagerBrowserTest::WallpaperManagerBrowserTest() { 34} 35 36WallpaperManagerBrowserTest::~WallpaperManagerBrowserTest() { 37} 38 39void WallpaperManagerBrowserTest::LoadAndLaunchWallpaperManager() { 40 extension_service()->component_loader()->Add( 41 IDR_WALLPAPERMANAGER_MANIFEST, 42 base::FilePath(FILE_PATH_LITERAL("chromeos/wallpaper_manager"))); 43 const Extension* wallpaper_app = 44 ExtensionRegistry::Get(profile())->GetExtensionById( 45 kWallpaperManagerExtensionID, ExtensionRegistry::EVERYTHING); 46 LaunchPlatformApp(wallpaper_app); 47} 48 49void WallpaperManagerBrowserTest::VerifyWallpaperManagerLoaded() { 50 ExtensionTestMessageListener window_created_listener( 51 "wallpaper-window-created", false); 52 ExtensionTestMessageListener launched_listener("launched", false); 53 LoadAndLaunchWallpaperManager(); 54 EXPECT_TRUE(window_created_listener.WaitUntilSatisfied()) 55 << "Wallpaper picker window was not created."; 56 EXPECT_TRUE(launched_listener.WaitUntilSatisfied()) 57 << "Wallpaper picker was not loaded."; 58} 59 60// Test for crbug.com/410550. 61IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, DevLaunchApp) { 62 VerifyWallpaperManagerLoaded(); 63} 64 65// Test for crbug.com/410550. Wallpaper picker should be able to create 66// alpha enabled window successfully. 67IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, StableLaunchApp) { 68 extensions::ScopedCurrentChannel channel(chrome::VersionInfo::CHANNEL_STABLE); 69 VerifyWallpaperManagerLoaded(); 70} 71