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

Side by Side Diff: chrome/browser/webshare/share_service_impl_unittest.cc

Issue 2708023002: Web Share (desktop): DCHECK instead of user error for invalid URLs. (Closed)
Patch Set: DCHECK instead of failing. Created 3 years, 10 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
« no previous file with comments | « chrome/browser/webshare/share_service_impl.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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 <memory> 5 #include <memory>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 make_pair(base::UTF8ToUTF16(kTargetName), GURL(kManifestUrlHigh)), 248 make_pair(base::UTF8ToUTF16(kTargetName), GURL(kManifestUrlHigh)),
249 make_pair(base::UTF8ToUTF16(kTargetName), GURL(kManifestUrlLow))}; 249 make_pair(base::UTF8ToUTF16(kTargetName), GURL(kManifestUrlLow))};
250 EXPECT_EQ(kExpectedTargets, share_service_helper()->GetTargetsInPicker()); 250 EXPECT_EQ(kExpectedTargets, share_service_helper()->GetTargetsInPicker());
251 251
252 // Cancel the dialog. 252 // Cancel the dialog.
253 share_service_helper()->picker_callback().Run(base::nullopt); 253 share_service_helper()->picker_callback().Run(base::nullopt);
254 254
255 EXPECT_TRUE(share_service_helper()->GetLastUsedTargetURL().empty()); 255 EXPECT_TRUE(share_service_helper()->GetLastUsedTargetURL().empty());
256 } 256 }
257 257
258 // Tests a target with a broken URL template (ReplacePlaceholders failure).
259 TEST_F(ShareServiceImplUnittest, ShareBrokenUrl) {
260 // Invalid placeholders. Detailed tests for broken templates are in the
261 // ReplacePlaceholders test; this just tests the share response.
262 constexpr char kBrokenUrlTemplate[] = "share?title={title";
263 share_service_helper()->AddShareTargetToPrefs(kManifestUrlHigh, kTargetName,
264 kBrokenUrlTemplate);
265
266 // Expect an error message in response.
267 base::Callback<void(const base::Optional<std::string>&)> callback =
268 base::Bind(&DidShare,
269 base::Optional<std::string>(
270 "Error: unable to replace placeholders in url template"));
271
272 base::RunLoop run_loop;
273 share_service_helper()->set_run_loop(&run_loop);
274
275 const GURL url(kUrlSpec);
276 share_service()->Share(kTitle, kText, url, callback);
277
278 run_loop.Run();
279
280 const std::vector<std::pair<base::string16, GURL>> kExpectedTargets{
281 make_pair(base::UTF8ToUTF16(kTargetName), GURL(kManifestUrlHigh))};
282 EXPECT_EQ(kExpectedTargets, share_service_helper()->GetTargetsInPicker());
283
284 // Pick example-high.com.
285 share_service_helper()->picker_callback().Run(
286 base::Optional<std::string>(kManifestUrlHigh));
287
288 EXPECT_TRUE(share_service_helper()->GetLastUsedTargetURL().empty());
289 }
290
258 // Test to check that only targets with enough engagement were in picker. 291 // Test to check that only targets with enough engagement were in picker.
259 TEST_F(ShareServiceImplUnittest, ShareWithSomeInsufficientlyEngagedTargets) { 292 TEST_F(ShareServiceImplUnittest, ShareWithSomeInsufficientlyEngagedTargets) {
260 share_service_helper()->AddShareTargetToPrefs(kManifestUrlMin, kTargetName, 293 share_service_helper()->AddShareTargetToPrefs(kManifestUrlMin, kTargetName,
261 kUrlTemplate); 294 kUrlTemplate);
262 share_service_helper()->AddShareTargetToPrefs(kManifestUrlLow, kTargetName, 295 share_service_helper()->AddShareTargetToPrefs(kManifestUrlLow, kTargetName,
263 kUrlTemplate); 296 kUrlTemplate);
264 297
265 base::Callback<void(const base::Optional<std::string>&)> callback = 298 base::Callback<void(const base::Optional<std::string>&)> callback =
266 base::Bind(&DidShare, base::Optional<std::string>()); 299 base::Bind(&DidShare, base::Optional<std::string>());
267 300
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 EXPECT_TRUE(succeeded); 550 EXPECT_TRUE(succeeded);
518 EXPECT_EQ("%C3%A9", url_template_filled); 551 EXPECT_EQ("%C3%A9", url_template_filled);
519 552
520 // U+1F4A9 553 // U+1F4A9
521 url_template = "{title}"; 554 url_template = "{title}";
522 succeeded = ShareServiceImpl::ReplacePlaceholders( 555 succeeded = ShareServiceImpl::ReplacePlaceholders(
523 url_template, "\xf0\x9f\x92\xa9", kText, url, &url_template_filled); 556 url_template, "\xf0\x9f\x92\xa9", kText, url, &url_template_filled);
524 EXPECT_TRUE(succeeded); 557 EXPECT_TRUE(succeeded);
525 EXPECT_EQ("%F0%9F%92%A9", url_template_filled); 558 EXPECT_EQ("%F0%9F%92%A9", url_template_filled);
526 } 559 }
OLDNEW
« no previous file with comments | « chrome/browser/webshare/share_service_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698