Home | History | Annotate | Download | only in runtime
      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