1 // Copyright (c) 2012 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 "chrome/browser/extensions/api/runtime/runtime_api.h" 6 #include "chrome/browser/extensions/extension_apitest.h" 7 #include "chrome/browser/extensions/extension_function_test_utils.h" 8 #include "chrome/test/base/ui_test_utils.h" 9 #include "net/test/embedded_test_server/embedded_test_server.h" 10 11 // Tests the privileged components of chrome.runtime. 12 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ChromeRuntimePrivileged) { 13 ASSERT_TRUE(RunExtensionTest("runtime/privileged")) << message_; 14 } 15 16 // Tests the unprivileged components of chrome.runtime. 17 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ChromeRuntimeUnprivileged) { 18 ASSERT_TRUE(StartEmbeddedTestServer()); 19 ASSERT_TRUE( 20 LoadExtension(test_data_dir_.AppendASCII("runtime/content_script"))); 21 22 // The content script runs on webpage.html. 23 ResultCatcher catcher; 24 ui_test_utils::NavigateToURL(browser(), 25 embedded_test_server()->GetURL("/webpage.html")); 26 EXPECT_TRUE(catcher.GetNextResult()) << message_; 27 } 28 29 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ChromeRuntimeUninstallUrl) { 30 ASSERT_TRUE(LoadExtension( 31 test_data_dir_.AppendASCII("runtime").AppendASCII("uninstall_url"). 32 AppendASCII("sets_uninstall_url"))); 33 ASSERT_TRUE(RunExtensionTest("runtime/uninstall_url")) << message_; 34 } 35 36 namespace extensions { 37 38 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ChromeRuntimeGetPlatformInfo) { 39 scoped_ptr<base::Value> result( 40 extension_function_test_utils::RunFunctionAndReturnSingleResult( 41 new RuntimeGetPlatformInfoFunction(), 42 "[]", 43 browser())); 44 ASSERT_TRUE(result.get() != NULL); 45 base::DictionaryValue* dict = 46 extension_function_test_utils::ToDictionary(result.get()); 47 ASSERT_TRUE(dict != NULL); 48 EXPECT_TRUE(dict->HasKey("os")); 49 EXPECT_TRUE(dict->HasKey("arch")); 50 EXPECT_TRUE(dict->HasKey("nacl_arch")); 51 } 52 53 // Tests chrome.runtime.getPackageDirectory with an app. 54 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, 55 ChromeRuntimeGetPackageDirectoryEntryApp) { 56 ASSERT_TRUE(RunPlatformAppTest("runtime/get_package_directory/app")) 57 << message_; 58 } 59 60 // Tests chrome.runtime.getPackageDirectory with an extension. 61 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, 62 ChromeRuntimeGetPackageDirectoryEntryExtension) { 63 ASSERT_TRUE(RunExtensionTest("runtime/get_package_directory/extension")) 64 << message_; 65 } 66 67 } // namespace extensions 68