| 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 "base/test/values_test_util.h" | 5 #include "base/test/values_test_util.h" |
| 6 #include "chrome/common/extensions/api/identity/oauth2_manifest_handler.h" | 6 #include "chrome/common/extensions/api/identity/oauth2_manifest_handler.h" |
| 7 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" | 7 #include "chrome/common/extensions/manifest_tests/chrome_manifest_test.h" |
| 8 #include "extensions/common/manifest_constants.h" | 8 #include "extensions/common/manifest_constants.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| 11 namespace extensions { | 11 namespace extensions { |
| 12 | 12 |
| 13 namespace keys = manifest_keys; | 13 namespace keys = manifest_keys; |
| 14 namespace errors = manifest_errors; | 14 namespace errors = manifest_errors; |
| 15 | 15 |
| 16 namespace { | 16 namespace { |
| 17 | 17 |
| 18 // Produces extension ID = "mdbihdcgjmagbcapkhhkjbbdlkflmbfo". | 18 // Produces extension ID = "mdbihdcgjmagbcapkhhkjbbdlkflmbfo". |
| 19 const char kExtensionKey[] = | 19 const char kExtensionKey[] = |
| 20 "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCV9PlZjcTIXfnlB3HXo50OlM/CnIq0y7jm" | 20 "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCV9PlZjcTIXfnlB3HXo50OlM/CnIq0y7jm" |
| 21 "KfPVyStaWsmFB7NaVnqUXoGb9swBDfVnZ6BrupwnxL76TWEJPo+KQMJ6uz0PPdJWi2jQfZiG" | 21 "KfPVyStaWsmFB7NaVnqUXoGb9swBDfVnZ6BrupwnxL76TWEJPo+KQMJ6uz0PPdJWi2jQfZiG" |
| 22 "iheDiKH5Gv+dVd67qf7ly8QWW0o8qmFpqBZQpksm1hOGbfsupv9W4c42tMEIicDMLQIDAQAB"; | 22 "iheDiKH5Gv+dVd67qf7ly8QWW0o8qmFpqBZQpksm1hOGbfsupv9W4c42tMEIicDMLQIDAQAB"; |
| 23 const char kAutoApproveNotAllowedWarning[] = | 23 const char kAutoApproveNotAllowedWarning[] = |
| 24 "'oauth2.auto_approve' is not allowed for specified extension ID."; | 24 "'oauth2.auto_approve' is not allowed for specified extension ID."; |
| 25 | 25 |
| 26 } // namespace | 26 } // namespace |
| 27 | 27 |
| 28 class OAuth2ManifestTest : public ExtensionManifestTest { | 28 class OAuth2ManifestTest : public ChromeManifestTest { |
| 29 protected: | 29 protected: |
| 30 enum AutoApproveValue { | 30 enum AutoApproveValue { |
| 31 AUTO_APPROVE_NOT_SET, | 31 AUTO_APPROVE_NOT_SET, |
| 32 AUTO_APPROVE_FALSE, | 32 AUTO_APPROVE_FALSE, |
| 33 AUTO_APPROVE_TRUE, | 33 AUTO_APPROVE_TRUE, |
| 34 AUTO_APPROVE_INVALID | 34 AUTO_APPROVE_INVALID |
| 35 }; | 35 }; |
| 36 | 36 |
| 37 enum ClientIdValue { | 37 enum ClientIdValue { |
| 38 CLIENT_ID_DEFAULT, | 38 CLIENT_ID_DEFAULT, |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 | 100 |
| 101 // OAuth2 section should be parsed for an extension. | 101 // OAuth2 section should be parsed for an extension. |
| 102 { | 102 { |
| 103 base::DictionaryValue ext_manifest; | 103 base::DictionaryValue ext_manifest; |
| 104 // Lack of "app" section representa an extension. So the base manifest | 104 // Lack of "app" section representa an extension. So the base manifest |
| 105 // itself represents an extension. | 105 // itself represents an extension. |
| 106 ext_manifest.MergeDictionary(&base_manifest); | 106 ext_manifest.MergeDictionary(&base_manifest); |
| 107 ext_manifest.SetString(keys::kKey, kExtensionKey); | 107 ext_manifest.SetString(keys::kKey, kExtensionKey); |
| 108 ext_manifest.SetBoolean(keys::kOAuth2AutoApprove, true); | 108 ext_manifest.SetBoolean(keys::kOAuth2AutoApprove, true); |
| 109 | 109 |
| 110 Manifest manifest(&ext_manifest, "test"); | 110 ManifestData manifest(&ext_manifest, "test"); |
| 111 scoped_refptr<extensions::Extension> extension = | 111 scoped_refptr<extensions::Extension> extension = |
| 112 LoadAndExpectSuccess(manifest); | 112 LoadAndExpectSuccess(manifest); |
| 113 EXPECT_TRUE(extension->install_warnings().empty()); | 113 EXPECT_TRUE(extension->install_warnings().empty()); |
| 114 EXPECT_EQ("client1", OAuth2Info::GetOAuth2Info(extension.get()).client_id); | 114 EXPECT_EQ("client1", OAuth2Info::GetOAuth2Info(extension.get()).client_id); |
| 115 EXPECT_EQ(2U, OAuth2Info::GetOAuth2Info(extension.get()).scopes.size()); | 115 EXPECT_EQ(2U, OAuth2Info::GetOAuth2Info(extension.get()).scopes.size()); |
| 116 EXPECT_EQ("scope1", OAuth2Info::GetOAuth2Info(extension.get()).scopes[0]); | 116 EXPECT_EQ("scope1", OAuth2Info::GetOAuth2Info(extension.get()).scopes[0]); |
| 117 EXPECT_EQ("scope2", OAuth2Info::GetOAuth2Info(extension.get()).scopes[1]); | 117 EXPECT_EQ("scope2", OAuth2Info::GetOAuth2Info(extension.get()).scopes[1]); |
| 118 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); | 118 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); |
| 119 } | 119 } |
| 120 | 120 |
| 121 // OAuth2 section should be parsed for a packaged app. | 121 // OAuth2 section should be parsed for a packaged app. |
| 122 { | 122 { |
| 123 base::DictionaryValue app_manifest; | 123 base::DictionaryValue app_manifest; |
| 124 app_manifest.SetString(keys::kLaunchLocalPath, "launch.html"); | 124 app_manifest.SetString(keys::kLaunchLocalPath, "launch.html"); |
| 125 app_manifest.MergeDictionary(&base_manifest); | 125 app_manifest.MergeDictionary(&base_manifest); |
| 126 | 126 |
| 127 Manifest manifest(&app_manifest, "test"); | 127 ManifestData manifest(&app_manifest, "test"); |
| 128 scoped_refptr<extensions::Extension> extension = | 128 scoped_refptr<extensions::Extension> extension = |
| 129 LoadAndExpectSuccess(manifest); | 129 LoadAndExpectSuccess(manifest); |
| 130 EXPECT_TRUE(extension->install_warnings().empty()); | 130 EXPECT_TRUE(extension->install_warnings().empty()); |
| 131 EXPECT_EQ("client1", OAuth2Info::GetOAuth2Info(extension.get()).client_id); | 131 EXPECT_EQ("client1", OAuth2Info::GetOAuth2Info(extension.get()).client_id); |
| 132 EXPECT_EQ(2U, OAuth2Info::GetOAuth2Info(extension.get()).scopes.size()); | 132 EXPECT_EQ(2U, OAuth2Info::GetOAuth2Info(extension.get()).scopes.size()); |
| 133 EXPECT_EQ("scope1", OAuth2Info::GetOAuth2Info(extension.get()).scopes[0]); | 133 EXPECT_EQ("scope1", OAuth2Info::GetOAuth2Info(extension.get()).scopes[0]); |
| 134 EXPECT_EQ("scope2", OAuth2Info::GetOAuth2Info(extension.get()).scopes[1]); | 134 EXPECT_EQ("scope2", OAuth2Info::GetOAuth2Info(extension.get()).scopes[1]); |
| 135 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); | 135 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); |
| 136 } | 136 } |
| 137 | 137 |
| 138 // OAuth2 section should NOT be parsed for a hosted app. | 138 // OAuth2 section should NOT be parsed for a hosted app. |
| 139 { | 139 { |
| 140 base::DictionaryValue app_manifest; | 140 base::DictionaryValue app_manifest; |
| 141 app_manifest.SetString(keys::kLaunchWebURL, "http://www.google.com"); | 141 app_manifest.SetString(keys::kLaunchWebURL, "http://www.google.com"); |
| 142 app_manifest.MergeDictionary(&base_manifest); | 142 app_manifest.MergeDictionary(&base_manifest); |
| 143 | 143 |
| 144 Manifest manifest(&app_manifest, "test"); | 144 ManifestData manifest(&app_manifest, "test"); |
| 145 scoped_refptr<extensions::Extension> extension = | 145 scoped_refptr<extensions::Extension> extension = |
| 146 LoadAndExpectSuccess(manifest); | 146 LoadAndExpectSuccess(manifest); |
| 147 EXPECT_EQ(1U, extension->install_warnings().size()); | 147 EXPECT_EQ(1U, extension->install_warnings().size()); |
| 148 const extensions::InstallWarning& warning = | 148 const extensions::InstallWarning& warning = |
| 149 extension->install_warnings()[0]; | 149 extension->install_warnings()[0]; |
| 150 EXPECT_EQ("'oauth2' is only allowed for extensions, legacy packaged apps, " | 150 EXPECT_EQ("'oauth2' is only allowed for extensions, legacy packaged apps, " |
| 151 "and packaged apps, but this is a hosted app.", | 151 "and packaged apps, but this is a hosted app.", |
| 152 warning.message); | 152 warning.message); |
| 153 EXPECT_EQ("", OAuth2Info::GetOAuth2Info(extension.get()).client_id); | 153 EXPECT_EQ("", OAuth2Info::GetOAuth2Info(extension.get()).client_id); |
| 154 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).scopes.empty()); | 154 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).scopes.empty()); |
| 155 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); | 155 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); |
| 156 } | 156 } |
| 157 } | 157 } |
| 158 | 158 |
| 159 TEST_F(OAuth2ManifestTest, AutoApproveNotSetExtensionNotOnWhitelist) { | 159 TEST_F(OAuth2ManifestTest, AutoApproveNotSetExtensionNotOnWhitelist) { |
| 160 base::DictionaryValue* ext_manifest = | 160 base::DictionaryValue* ext_manifest = |
| 161 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_DEFAULT); | 161 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_DEFAULT); |
| 162 Manifest manifest(ext_manifest, "test"); | 162 ManifestData manifest(ext_manifest, "test"); |
| 163 scoped_refptr<extensions::Extension> extension = | 163 scoped_refptr<extensions::Extension> extension = |
| 164 LoadAndExpectSuccess(manifest); | 164 LoadAndExpectSuccess(manifest); |
| 165 EXPECT_TRUE(extension->install_warnings().empty()); | 165 EXPECT_TRUE(extension->install_warnings().empty()); |
| 166 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); | 166 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); |
| 167 } | 167 } |
| 168 | 168 |
| 169 TEST_F(OAuth2ManifestTest, AutoApproveFalseExtensionNotOnWhitelist) { | 169 TEST_F(OAuth2ManifestTest, AutoApproveFalseExtensionNotOnWhitelist) { |
| 170 base::DictionaryValue* ext_manifest = | 170 base::DictionaryValue* ext_manifest = |
| 171 CreateManifest(AUTO_APPROVE_FALSE, false, CLIENT_ID_DEFAULT); | 171 CreateManifest(AUTO_APPROVE_FALSE, false, CLIENT_ID_DEFAULT); |
| 172 Manifest manifest(ext_manifest, "test"); | 172 ManifestData manifest(ext_manifest, "test"); |
| 173 scoped_refptr<extensions::Extension> extension = | 173 scoped_refptr<extensions::Extension> extension = |
| 174 LoadAndExpectSuccess(manifest); | 174 LoadAndExpectSuccess(manifest); |
| 175 EXPECT_EQ(1U, extension->install_warnings().size()); | 175 EXPECT_EQ(1U, extension->install_warnings().size()); |
| 176 const extensions::InstallWarning& warning = | 176 const extensions::InstallWarning& warning = |
| 177 extension->install_warnings()[0]; | 177 extension->install_warnings()[0]; |
| 178 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message); | 178 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message); |
| 179 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); | 179 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); |
| 180 } | 180 } |
| 181 | 181 |
| 182 TEST_F(OAuth2ManifestTest, AutoApproveTrueExtensionNotOnWhitelist) { | 182 TEST_F(OAuth2ManifestTest, AutoApproveTrueExtensionNotOnWhitelist) { |
| 183 base::DictionaryValue* ext_manifest = | 183 base::DictionaryValue* ext_manifest = |
| 184 CreateManifest(AUTO_APPROVE_TRUE, false, CLIENT_ID_DEFAULT); | 184 CreateManifest(AUTO_APPROVE_TRUE, false, CLIENT_ID_DEFAULT); |
| 185 Manifest manifest(ext_manifest, "test"); | 185 ManifestData manifest(ext_manifest, "test"); |
| 186 scoped_refptr<extensions::Extension> extension = | 186 scoped_refptr<extensions::Extension> extension = |
| 187 LoadAndExpectSuccess(manifest); | 187 LoadAndExpectSuccess(manifest); |
| 188 EXPECT_EQ(1U, extension->install_warnings().size()); | 188 EXPECT_EQ(1U, extension->install_warnings().size()); |
| 189 const extensions::InstallWarning& warning = | 189 const extensions::InstallWarning& warning = |
| 190 extension->install_warnings()[0]; | 190 extension->install_warnings()[0]; |
| 191 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message); | 191 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message); |
| 192 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); | 192 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); |
| 193 } | 193 } |
| 194 | 194 |
| 195 TEST_F(OAuth2ManifestTest, AutoApproveInvalidExtensionNotOnWhitelist) { | 195 TEST_F(OAuth2ManifestTest, AutoApproveInvalidExtensionNotOnWhitelist) { |
| 196 base::DictionaryValue* ext_manifest = | 196 base::DictionaryValue* ext_manifest = |
| 197 CreateManifest(AUTO_APPROVE_INVALID, false, CLIENT_ID_DEFAULT); | 197 CreateManifest(AUTO_APPROVE_INVALID, false, CLIENT_ID_DEFAULT); |
| 198 Manifest manifest(ext_manifest, "test"); | 198 ManifestData manifest(ext_manifest, "test"); |
| 199 scoped_refptr<extensions::Extension> extension = | 199 scoped_refptr<extensions::Extension> extension = |
| 200 LoadAndExpectSuccess(manifest); | 200 LoadAndExpectSuccess(manifest); |
| 201 EXPECT_EQ(1U, extension->install_warnings().size()); | 201 EXPECT_EQ(1U, extension->install_warnings().size()); |
| 202 const extensions::InstallWarning& warning = | 202 const extensions::InstallWarning& warning = |
| 203 extension->install_warnings()[0]; | 203 extension->install_warnings()[0]; |
| 204 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message); | 204 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message); |
| 205 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); | 205 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); |
| 206 } | 206 } |
| 207 | 207 |
| 208 TEST_F(OAuth2ManifestTest, AutoApproveNotSetExtensionOnWhitelist) { | 208 TEST_F(OAuth2ManifestTest, AutoApproveNotSetExtensionOnWhitelist) { |
| 209 base::DictionaryValue* ext_manifest = | 209 base::DictionaryValue* ext_manifest = |
| 210 CreateManifest(AUTO_APPROVE_NOT_SET, true, CLIENT_ID_DEFAULT); | 210 CreateManifest(AUTO_APPROVE_NOT_SET, true, CLIENT_ID_DEFAULT); |
| 211 Manifest manifest(ext_manifest, "test"); | 211 ManifestData manifest(ext_manifest, "test"); |
| 212 scoped_refptr<extensions::Extension> extension = | 212 scoped_refptr<extensions::Extension> extension = |
| 213 LoadAndExpectSuccess(manifest); | 213 LoadAndExpectSuccess(manifest); |
| 214 EXPECT_TRUE(extension->install_warnings().empty()); | 214 EXPECT_TRUE(extension->install_warnings().empty()); |
| 215 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); | 215 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); |
| 216 } | 216 } |
| 217 | 217 |
| 218 TEST_F(OAuth2ManifestTest, AutoApproveFalseExtensionOnWhitelist) { | 218 TEST_F(OAuth2ManifestTest, AutoApproveFalseExtensionOnWhitelist) { |
| 219 base::DictionaryValue* ext_manifest = | 219 base::DictionaryValue* ext_manifest = |
| 220 CreateManifest(AUTO_APPROVE_FALSE, true, CLIENT_ID_DEFAULT); | 220 CreateManifest(AUTO_APPROVE_FALSE, true, CLIENT_ID_DEFAULT); |
| 221 Manifest manifest(ext_manifest, "test"); | 221 ManifestData manifest(ext_manifest, "test"); |
| 222 scoped_refptr<extensions::Extension> extension = | 222 scoped_refptr<extensions::Extension> extension = |
| 223 LoadAndExpectSuccess(manifest); | 223 LoadAndExpectSuccess(manifest); |
| 224 EXPECT_TRUE(extension->install_warnings().empty()); | 224 EXPECT_TRUE(extension->install_warnings().empty()); |
| 225 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); | 225 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); |
| 226 } | 226 } |
| 227 | 227 |
| 228 TEST_F(OAuth2ManifestTest, AutoApproveTrueExtensionOnWhitelist) { | 228 TEST_F(OAuth2ManifestTest, AutoApproveTrueExtensionOnWhitelist) { |
| 229 base::DictionaryValue* ext_manifest = | 229 base::DictionaryValue* ext_manifest = |
| 230 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_DEFAULT); | 230 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_DEFAULT); |
| 231 Manifest manifest(ext_manifest, "test"); | 231 ManifestData manifest(ext_manifest, "test"); |
| 232 scoped_refptr<extensions::Extension> extension = | 232 scoped_refptr<extensions::Extension> extension = |
| 233 LoadAndExpectSuccess(manifest); | 233 LoadAndExpectSuccess(manifest); |
| 234 EXPECT_TRUE(extension->install_warnings().empty()); | 234 EXPECT_TRUE(extension->install_warnings().empty()); |
| 235 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); | 235 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); |
| 236 } | 236 } |
| 237 | 237 |
| 238 TEST_F(OAuth2ManifestTest, AutoApproveInvalidExtensionOnWhitelist) { | 238 TEST_F(OAuth2ManifestTest, AutoApproveInvalidExtensionOnWhitelist) { |
| 239 base::DictionaryValue* ext_manifest = | 239 base::DictionaryValue* ext_manifest = |
| 240 CreateManifest(AUTO_APPROVE_INVALID, true, CLIENT_ID_DEFAULT); | 240 CreateManifest(AUTO_APPROVE_INVALID, true, CLIENT_ID_DEFAULT); |
| 241 Manifest manifest(ext_manifest, "test"); | 241 ManifestData manifest(ext_manifest, "test"); |
| 242 std::string error; | 242 std::string error; |
| 243 scoped_refptr<extensions::Extension> extension = | 243 scoped_refptr<extensions::Extension> extension = |
| 244 LoadExtension(manifest, &error); | 244 LoadExtension(manifest, &error); |
| 245 EXPECT_EQ( | 245 EXPECT_EQ( |
| 246 "Invalid value for 'oauth2.auto_approve'. Value must be true or false.", | 246 "Invalid value for 'oauth2.auto_approve'. Value must be true or false.", |
| 247 error); | 247 error); |
| 248 } | 248 } |
| 249 | 249 |
| 250 TEST_F(OAuth2ManifestTest, InvalidClientId) { | 250 TEST_F(OAuth2ManifestTest, InvalidClientId) { |
| 251 { | 251 { |
| 252 base::DictionaryValue* ext_manifest = | 252 base::DictionaryValue* ext_manifest = |
| 253 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_NOT_SET); | 253 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_NOT_SET); |
| 254 Manifest manifest(ext_manifest, "test"); | 254 ManifestData manifest(ext_manifest, "test"); |
| 255 std::string error; | 255 std::string error; |
| 256 LoadAndExpectError(manifest, errors::kInvalidOAuth2ClientId); | 256 LoadAndExpectError(manifest, errors::kInvalidOAuth2ClientId); |
| 257 } | 257 } |
| 258 | 258 |
| 259 { | 259 { |
| 260 base::DictionaryValue* ext_manifest = | 260 base::DictionaryValue* ext_manifest = |
| 261 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_EMPTY); | 261 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_EMPTY); |
| 262 Manifest manifest(ext_manifest, "test"); | 262 ManifestData manifest(ext_manifest, "test"); |
| 263 std::string error; | 263 std::string error; |
| 264 LoadAndExpectError(manifest, errors::kInvalidOAuth2ClientId); | 264 LoadAndExpectError(manifest, errors::kInvalidOAuth2ClientId); |
| 265 } | 265 } |
| 266 } | 266 } |
| 267 | 267 |
| 268 TEST_F(OAuth2ManifestTest, ComponentInvalidClientId) { | 268 TEST_F(OAuth2ManifestTest, ComponentInvalidClientId) { |
| 269 // Component Apps without auto_approve must include a client ID. | 269 // Component Apps without auto_approve must include a client ID. |
| 270 { | 270 { |
| 271 base::DictionaryValue* ext_manifest = | 271 base::DictionaryValue* ext_manifest = |
| 272 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_NOT_SET); | 272 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_NOT_SET); |
| 273 Manifest manifest(ext_manifest, "test"); | 273 ManifestData manifest(ext_manifest, "test"); |
| 274 std::string error; | 274 std::string error; |
| 275 LoadAndExpectError(manifest, | 275 LoadAndExpectError(manifest, |
| 276 errors::kInvalidOAuth2ClientId, | 276 errors::kInvalidOAuth2ClientId, |
| 277 extensions::Manifest::COMPONENT); | 277 extensions::Manifest::COMPONENT); |
| 278 } | 278 } |
| 279 | 279 |
| 280 { | 280 { |
| 281 base::DictionaryValue* ext_manifest = | 281 base::DictionaryValue* ext_manifest = |
| 282 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_EMPTY); | 282 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_EMPTY); |
| 283 Manifest manifest(ext_manifest, "test"); | 283 ManifestData manifest(ext_manifest, "test"); |
| 284 std::string error; | 284 std::string error; |
| 285 LoadAndExpectError(manifest, | 285 LoadAndExpectError(manifest, |
| 286 errors::kInvalidOAuth2ClientId, | 286 errors::kInvalidOAuth2ClientId, |
| 287 extensions::Manifest::COMPONENT); | 287 extensions::Manifest::COMPONENT); |
| 288 } | 288 } |
| 289 } | 289 } |
| 290 | 290 |
| 291 TEST_F(OAuth2ManifestTest, ComponentWithChromeClientId) { | 291 TEST_F(OAuth2ManifestTest, ComponentWithChromeClientId) { |
| 292 { | 292 { |
| 293 base::DictionaryValue* ext_manifest = | 293 base::DictionaryValue* ext_manifest = |
| 294 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_NOT_SET); | 294 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_NOT_SET); |
| 295 Manifest manifest(ext_manifest, "test"); | 295 ManifestData manifest(ext_manifest, "test"); |
| 296 scoped_refptr<extensions::Extension> extension = | 296 scoped_refptr<extensions::Extension> extension = |
| 297 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT); | 297 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT); |
| 298 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).client_id.empty()); | 298 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).client_id.empty()); |
| 299 | 299 |
| 300 } | 300 } |
| 301 | 301 |
| 302 { | 302 { |
| 303 base::DictionaryValue* ext_manifest = | 303 base::DictionaryValue* ext_manifest = |
| 304 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_EMPTY); | 304 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_EMPTY); |
| 305 Manifest manifest(ext_manifest, "test"); | 305 ManifestData manifest(ext_manifest, "test"); |
| 306 scoped_refptr<extensions::Extension> extension = | 306 scoped_refptr<extensions::Extension> extension = |
| 307 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT); | 307 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT); |
| 308 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).client_id.empty()); | 308 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).client_id.empty()); |
| 309 | 309 |
| 310 } | 310 } |
| 311 } | 311 } |
| 312 | 312 |
| 313 TEST_F(OAuth2ManifestTest, ComponentWithStandardClientId) { | 313 TEST_F(OAuth2ManifestTest, ComponentWithStandardClientId) { |
| 314 base::DictionaryValue* ext_manifest = | 314 base::DictionaryValue* ext_manifest = |
| 315 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_DEFAULT); | 315 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_DEFAULT); |
| 316 Manifest manifest(ext_manifest, "test"); | 316 ManifestData manifest(ext_manifest, "test"); |
| 317 scoped_refptr<extensions::Extension> extension = | 317 scoped_refptr<extensions::Extension> extension = |
| 318 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT); | 318 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT); |
| 319 EXPECT_EQ("client1", OAuth2Info::GetOAuth2Info(extension.get()).client_id); | 319 EXPECT_EQ("client1", OAuth2Info::GetOAuth2Info(extension.get()).client_id); |
| 320 } | 320 } |
| 321 | 321 |
| 322 } // namespace extensions | 322 } // namespace extensions |
| OLD | NEW |