OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/common/extensions/extension.h" | 5 #include "chrome/common/extensions/extension.h" |
6 | 6 |
7 #if defined(TOOLKIT_GTK) | 7 #if defined(TOOLKIT_GTK) |
8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
9 #endif | 9 #endif |
10 | 10 |
11 #include "base/command_line.h" | 11 #include "base/command_line.h" |
12 #include "base/file_path.h" | 12 #include "base/file_path.h" |
13 #include "base/file_util.h" | 13 #include "base/file_util.h" |
14 #include "base/i18n/rtl.h" | 14 #include "base/i18n/rtl.h" |
15 #include "base/json/json_value_serializer.h" | 15 #include "base/json/json_value_serializer.h" |
16 #include "base/memory/scoped_ptr.h" | 16 #include "base/memory/scoped_ptr.h" |
17 #include "base/path_service.h" | 17 #include "base/path_service.h" |
18 #include "base/string_number_conversions.h" | 18 #include "base/string_number_conversions.h" |
19 #include "base/string_util.h" | 19 #include "base/string_util.h" |
20 #include "base/stringprintf.h" | 20 #include "base/stringprintf.h" |
21 #include "base/utf_string_conversions.h" | 21 #include "base/utf_string_conversions.h" |
22 #include "chrome/common/chrome_paths.h" | 22 #include "chrome/common/chrome_paths.h" |
23 #include "chrome/common/chrome_switches.h" | 23 #include "chrome/common/chrome_switches.h" |
24 #include "chrome/common/extensions/extension.h" | 24 #include "chrome/common/extensions/extension.h" |
25 #include "chrome/common/extensions/extension_action.h" | 25 #include "chrome/common/extensions/extension_action.h" |
26 #include "chrome/common/extensions/extension_constants.h" | 26 #include "chrome/common/extensions/extension_constants.h" |
27 #include "chrome/common/extensions/extension_error_utils.h" | 27 #include "chrome/common/extensions/extension_error_utils.h" |
28 #include "chrome/common/extensions/extension_sidebar_defaults.h" | |
29 #include "chrome/common/extensions/file_browser_handler.h" | 28 #include "chrome/common/extensions/file_browser_handler.h" |
30 #include "chrome/common/extensions/url_pattern.h" | 29 #include "chrome/common/extensions/url_pattern.h" |
31 #include "testing/gtest/include/gtest/gtest.h" | 30 #include "testing/gtest/include/gtest/gtest.h" |
32 #include "ui/base/l10n/l10n_util.h" | 31 #include "ui/base/l10n/l10n_util.h" |
33 #include "webkit/glue/web_intent_service_data.h" | 32 #include "webkit/glue/web_intent_service_data.h" |
34 | 33 |
35 namespace { | 34 namespace { |
36 | 35 |
37 static void AddPattern(URLPatternSet* extent, const std::string& pattern) { | 36 static void AddPattern(URLPatternSet* extent, const std::string& pattern) { |
38 int schemes = URLPattern::SCHEME_ALL; | 37 int schemes = URLPattern::SCHEME_ALL; |
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 LoadAndExpectError("devtools_extension_url_invalid_type.json", | 538 LoadAndExpectError("devtools_extension_url_invalid_type.json", |
540 errors::kInvalidDevToolsPage); | 539 errors::kInvalidDevToolsPage); |
541 | 540 |
542 scoped_refptr<Extension> extension; | 541 scoped_refptr<Extension> extension; |
543 extension = LoadAndExpectSuccess("devtools_extension.json"); | 542 extension = LoadAndExpectSuccess("devtools_extension.json"); |
544 EXPECT_EQ(extension->url().spec() + "devtools.html", | 543 EXPECT_EQ(extension->url().spec() + "devtools.html", |
545 extension->devtools_url().spec()); | 544 extension->devtools_url().spec()); |
546 EXPECT_TRUE(extension->HasEffectiveAccessToAllHosts()); | 545 EXPECT_TRUE(extension->HasEffectiveAccessToAllHosts()); |
547 } | 546 } |
548 | 547 |
549 TEST_F(ExtensionManifestTest, Sidebar) { | |
550 LoadAndExpectError("sidebar.json", | |
551 errors::kExperimentalFlagRequired); | |
552 | |
553 CommandLine::ForCurrentProcess()->AppendSwitch( | |
554 switches::kEnableExperimentalExtensionApis); | |
555 | |
556 LoadAndExpectError("sidebar_no_permissions.json", | |
557 errors::kSidebarExperimental); | |
558 | |
559 LoadAndExpectError("sidebar_icon_empty.json", | |
560 errors::kInvalidSidebarDefaultIconPath); | |
561 LoadAndExpectError("sidebar_icon_invalid_type.json", | |
562 errors::kInvalidSidebarDefaultIconPath); | |
563 LoadAndExpectError("sidebar_page_empty.json", | |
564 errors::kInvalidSidebarDefaultPage); | |
565 LoadAndExpectError("sidebar_page_invalid_type.json", | |
566 errors::kInvalidSidebarDefaultPage); | |
567 LoadAndExpectError("sidebar_title_invalid_type.json", | |
568 errors::kInvalidSidebarDefaultTitle); | |
569 | |
570 scoped_refptr<Extension> extension(LoadAndExpectSuccess("sidebar.json")); | |
571 ASSERT_TRUE(extension->sidebar_defaults() != NULL); | |
572 EXPECT_EQ(extension->sidebar_defaults()->default_title(), | |
573 ASCIIToUTF16("Default title")); | |
574 EXPECT_EQ(extension->sidebar_defaults()->default_icon_path(), | |
575 "icon.png"); | |
576 EXPECT_EQ(extension->url().spec() + "sidebar.html", | |
577 extension->sidebar_defaults()->default_page().spec()); | |
578 } | |
579 | |
580 TEST_F(ExtensionManifestTest, BackgroundPermission) { | 548 TEST_F(ExtensionManifestTest, BackgroundPermission) { |
581 LoadAndExpectError("background_permission.json", | 549 LoadAndExpectError("background_permission.json", |
582 errors::kBackgroundPermissionNeeded); | 550 errors::kBackgroundPermissionNeeded); |
583 } | 551 } |
584 | 552 |
585 TEST_F(ExtensionManifestTest, OptionsPageInApps) { | 553 TEST_F(ExtensionManifestTest, OptionsPageInApps) { |
586 scoped_refptr<Extension> extension; | 554 scoped_refptr<Extension> extension; |
587 | 555 |
588 // Allow options page with absolute URL in hosted apps. | 556 // Allow options page with absolute URL in hosted apps. |
589 extension = LoadAndExpectSuccess("hosted_app_absolute_options.json"); | 557 extension = LoadAndExpectSuccess("hosted_app_absolute_options.json"); |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1041 EXPECT_EQ("", extension->page_action()->id()); | 1009 EXPECT_EQ("", extension->page_action()->id()); |
1042 EXPECT_EQ(0u, extension->page_action()->icon_paths()->size()); | 1010 EXPECT_EQ(0u, extension->page_action()->icon_paths()->size()); |
1043 EXPECT_EQ("", extension->page_action()->GetTitle( | 1011 EXPECT_EQ("", extension->page_action()->GetTitle( |
1044 ExtensionAction::kDefaultTabId)); | 1012 ExtensionAction::kDefaultTabId)); |
1045 EXPECT_FALSE(extension->page_action()->HasPopup( | 1013 EXPECT_FALSE(extension->page_action()->HasPopup( |
1046 ExtensionAction::kDefaultTabId)); | 1014 ExtensionAction::kDefaultTabId)); |
1047 | 1015 |
1048 LoadAndExpectError("page_action_manifest_version_2b.json", | 1016 LoadAndExpectError("page_action_manifest_version_2b.json", |
1049 errors::kInvalidPageActionPopup); | 1017 errors::kInvalidPageActionPopup); |
1050 } | 1018 } |
OLD | NEW |