Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(345)

Side by Side Diff: chrome/common/extensions/manifest_tests/extension_manifests_web_unittest.cc

Issue 10384072: Update to handle absolute-looking paths in manifests and still produce nice-looking URLs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to head Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/common/extensions/extension_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/manifest_tests/extension_manifest_test.h" 5 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
6 6
7 #include "base/string_number_conversions.h" 7 #include "base/string_number_conversions.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "chrome/common/extensions/extension_error_utils.h" 9 #include "chrome/common/extensions/extension_error_utils.h"
10 #include "chrome/common/extensions/extension_manifest_constants.h" 10 #include "chrome/common/extensions/extension_manifest_constants.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 scoped_refptr<Extension> extension( 66 scoped_refptr<Extension> extension(
67 LoadAndExpectSuccess("intent_valid.json")); 67 LoadAndExpectSuccess("intent_valid.json"));
68 ASSERT_TRUE(extension.get() != NULL); 68 ASSERT_TRUE(extension.get() != NULL);
69 69
70 ASSERT_EQ(1u, extension->intents_services().size()); 70 ASSERT_EQ(1u, extension->intents_services().size());
71 EXPECT_EQ("image/png", UTF16ToUTF8(extension->intents_services()[0].type)); 71 EXPECT_EQ("image/png", UTF16ToUTF8(extension->intents_services()[0].type));
72 EXPECT_EQ("http://webintents.org/share", 72 EXPECT_EQ("http://webintents.org/share",
73 UTF16ToUTF8(extension->intents_services()[0].action)); 73 UTF16ToUTF8(extension->intents_services()[0].action));
74 EXPECT_EQ("chrome-extension", 74 EXPECT_EQ("chrome-extension",
75 extension->intents_services()[0].service_url.scheme()); 75 extension->intents_services()[0].service_url.scheme());
76 EXPECT_EQ("//services/share", 76 EXPECT_EQ("/services/share",
77 extension->intents_services()[0].service_url.path()); 77 extension->intents_services()[0].service_url.path());
78 EXPECT_EQ("Sample Sharing Intent", 78 EXPECT_EQ("Sample Sharing Intent",
79 UTF16ToUTF8(extension->intents_services()[0].title)); 79 UTF16ToUTF8(extension->intents_services()[0].title));
80 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_INLINE, 80 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_INLINE,
81 extension->intents_services()[0].disposition); 81 extension->intents_services()[0].disposition);
82 82
83 // Verify that optional fields are filled with defaults. 83 // Verify that optional fields are filled with defaults.
84 extension = LoadAndExpectSuccess("intent_valid_minimal.json"); 84 extension = LoadAndExpectSuccess("intent_valid_minimal.json");
85 ASSERT_TRUE(extension.get() != NULL); 85 ASSERT_TRUE(extension.get() != NULL);
86 86
87 ASSERT_EQ(1u, extension->intents_services().size()); 87 ASSERT_EQ(1u, extension->intents_services().size());
88 EXPECT_EQ("*", UTF16ToUTF8(extension->intents_services()[0].type)); 88 EXPECT_EQ("*", UTF16ToUTF8(extension->intents_services()[0].type));
89 EXPECT_EQ("http://webintents.org/share", 89 EXPECT_EQ("http://webintents.org/share",
90 UTF16ToUTF8(extension->intents_services()[0].action)); 90 UTF16ToUTF8(extension->intents_services()[0].action));
91 EXPECT_EQ("", UTF16ToUTF8(extension->intents_services()[0].title)); 91 EXPECT_EQ("", UTF16ToUTF8(extension->intents_services()[0].title));
92 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_WINDOW, 92 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_WINDOW,
93 extension->intents_services()[0].disposition); 93 extension->intents_services()[0].disposition);
94 94
95 // Make sure we support href instead of path. 95 // Make sure we support href instead of path.
96 extension = LoadAndExpectSuccess("intent_valid_using_href.json"); 96 extension = LoadAndExpectSuccess("intent_valid_using_href.json");
97 ASSERT_TRUE(extension.get() != NULL); 97 ASSERT_TRUE(extension.get() != NULL);
98 ASSERT_EQ(1u, extension->intents_services().size()); 98 ASSERT_EQ(1u, extension->intents_services().size());
99 EXPECT_EQ("//services/share", 99 EXPECT_EQ("/services/share",
100 extension->intents_services()[0].service_url.path()); 100 extension->intents_services()[0].service_url.path());
101 } 101 }
102 102
103 TEST_F(ExtensionManifestTest, WebIntentsWithMultipleMimeTypes) { 103 TEST_F(ExtensionManifestTest, WebIntentsWithMultipleMimeTypes) {
104 scoped_refptr<Extension> extension( 104 scoped_refptr<Extension> extension(
105 LoadAndExpectSuccess("intent_valid_multitype.json")); 105 LoadAndExpectSuccess("intent_valid_multitype.json"));
106 ASSERT_TRUE(extension.get() != NULL); 106 ASSERT_TRUE(extension.get() != NULL);
107 107
108 ASSERT_EQ(2u, extension->intents_services().size()); 108 ASSERT_EQ(2u, extension->intents_services().size());
109 109
110 // One registration with multiple types generates a separate service for 110 // One registration with multiple types generates a separate service for
111 // each MIME type. 111 // each MIME type.
112 for (int i = 0; i < 2; ++i) { 112 for (int i = 0; i < 2; ++i) {
113 EXPECT_EQ("http://webintents.org/share", 113 EXPECT_EQ("http://webintents.org/share",
114 UTF16ToUTF8(extension->intents_services()[i].action)); 114 UTF16ToUTF8(extension->intents_services()[i].action));
115 EXPECT_EQ("chrome-extension", 115 EXPECT_EQ("chrome-extension",
116 extension->intents_services()[i].service_url.scheme()); 116 extension->intents_services()[i].service_url.scheme());
117 EXPECT_EQ("//services/share", 117 EXPECT_EQ("/services/share",
118 extension->intents_services()[i].service_url.path()); 118 extension->intents_services()[i].service_url.path());
119 EXPECT_EQ("Sample Sharing Intent", 119 EXPECT_EQ("Sample Sharing Intent",
120 UTF16ToUTF8(extension->intents_services()[i].title)); 120 UTF16ToUTF8(extension->intents_services()[i].title));
121 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_INLINE, 121 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_INLINE,
122 extension->intents_services()[i].disposition); 122 extension->intents_services()[i].disposition);
123 } 123 }
124 EXPECT_EQ("image/jpeg", UTF16ToUTF8(extension->intents_services()[0].type)); 124 EXPECT_EQ("image/jpeg", UTF16ToUTF8(extension->intents_services()[0].type));
125 EXPECT_EQ("image/bmp", UTF16ToUTF8(extension->intents_services()[1].type)); 125 EXPECT_EQ("image/bmp", UTF16ToUTF8(extension->intents_services()[1].type));
126 126
127 LoadAndExpectError("intent_invalid_type_element.json", 127 LoadAndExpectError("intent_invalid_type_element.json",
(...skipping 29 matching lines...) Expand all
157 TEST_F(ExtensionManifestTest, WebIntentsMultiHref) { 157 TEST_F(ExtensionManifestTest, WebIntentsMultiHref) {
158 scoped_refptr<Extension> extension( 158 scoped_refptr<Extension> extension(
159 LoadAndExpectSuccess("intent_valid_multi_href.json")); 159 LoadAndExpectSuccess("intent_valid_multi_href.json"));
160 ASSERT_TRUE(extension.get() != NULL); 160 ASSERT_TRUE(extension.get() != NULL);
161 ASSERT_EQ(2u, extension->intents_services().size()); 161 ASSERT_EQ(2u, extension->intents_services().size());
162 162
163 const std::vector<webkit_glue::WebIntentServiceData> &intents = 163 const std::vector<webkit_glue::WebIntentServiceData> &intents =
164 extension->intents_services(); 164 extension->intents_services();
165 165
166 EXPECT_EQ("chrome-extension", intents[0].service_url.scheme()); 166 EXPECT_EQ("chrome-extension", intents[0].service_url.scheme());
167 EXPECT_EQ("//services/sharelink.html",intents[0].service_url.path()); 167 EXPECT_EQ("/services/sharelink.html",intents[0].service_url.path());
168 EXPECT_EQ("text/uri-list",UTF16ToUTF8(intents[0].type)); 168 EXPECT_EQ("text/uri-list",UTF16ToUTF8(intents[0].type));
169 169
170 EXPECT_EQ("chrome-extension", intents[1].service_url.scheme()); 170 EXPECT_EQ("chrome-extension", intents[1].service_url.scheme());
171 EXPECT_EQ("//services/shareimage.html",intents[1].service_url.path()); 171 EXPECT_EQ("/services/shareimage.html",intents[1].service_url.path());
172 EXPECT_EQ("image/*",UTF16ToUTF8(intents[1].type)); 172 EXPECT_EQ("image/*",UTF16ToUTF8(intents[1].type));
173 } 173 }
174 174
175 TEST_F(ExtensionManifestTest, WebIntentsBlankHref) { 175 TEST_F(ExtensionManifestTest, WebIntentsBlankHref) {
176 LoadAndExpectError("intent_invalid_blank_action_extension.json", 176 LoadAndExpectError("intent_invalid_blank_action_extension.json",
177 errors::kInvalidIntentHrefEmpty); 177 errors::kInvalidIntentHrefEmpty);
178 178
179 scoped_refptr<Extension> extension( 179 scoped_refptr<Extension> extension(
180 LoadAndExpectSuccess("intent_valid_blank_action_hosted.json")); 180 LoadAndExpectSuccess("intent_valid_blank_action_hosted.json"));
181 ASSERT_TRUE(extension.get() != NULL); 181 ASSERT_TRUE(extension.get() != NULL);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 EXPECT_TYPE_ERROR); 225 EXPECT_TYPE_ERROR);
226 226
227 LoadAndExpectSuccess("web_urls_has_port.json"); 227 LoadAndExpectSuccess("web_urls_has_port.json");
228 228
229 scoped_refptr<Extension> extension( 229 scoped_refptr<Extension> extension(
230 LoadAndExpectSuccess("web_urls_default.json")); 230 LoadAndExpectSuccess("web_urls_default.json"));
231 ASSERT_EQ(1u, extension->web_extent().patterns().size()); 231 ASSERT_EQ(1u, extension->web_extent().patterns().size());
232 EXPECT_EQ("*://www.google.com/*", 232 EXPECT_EQ("*://www.google.com/*",
233 extension->web_extent().patterns().begin()->GetAsString()); 233 extension->web_extent().patterns().begin()->GetAsString());
234 } 234 }
OLDNEW
« no previous file with comments | « chrome/common/extensions/extension_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698