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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/webshare/share_service_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/webshare/share_service_impl_unittest.cc
diff --git a/chrome/browser/webshare/share_service_impl_unittest.cc b/chrome/browser/webshare/share_service_impl_unittest.cc
index f00bb8cc4fa2ed976e44e1f32b958e905f49594c..82bf6b85db424be02f6384d92d9f10c232f51b16 100644
--- a/chrome/browser/webshare/share_service_impl_unittest.cc
+++ b/chrome/browser/webshare/share_service_impl_unittest.cc
@@ -255,6 +255,39 @@ TEST_F(ShareServiceImplUnittest, ShareCancelWithTargets) {
EXPECT_TRUE(share_service_helper()->GetLastUsedTargetURL().empty());
}
+// Tests a target with a broken URL template (ReplacePlaceholders failure).
+TEST_F(ShareServiceImplUnittest, ShareBrokenUrl) {
+ // Invalid placeholders. Detailed tests for broken templates are in the
+ // ReplacePlaceholders test; this just tests the share response.
+ constexpr char kBrokenUrlTemplate[] = "share?title={title";
+ share_service_helper()->AddShareTargetToPrefs(kManifestUrlHigh, kTargetName,
+ kBrokenUrlTemplate);
+
+ // Expect an error message in response.
+ base::Callback<void(const base::Optional<std::string>&)> callback =
+ base::Bind(&DidShare,
+ base::Optional<std::string>(
+ "Error: unable to replace placeholders in url template"));
+
+ base::RunLoop run_loop;
+ share_service_helper()->set_run_loop(&run_loop);
+
+ const GURL url(kUrlSpec);
+ share_service()->Share(kTitle, kText, url, callback);
+
+ run_loop.Run();
+
+ const std::vector<std::pair<base::string16, GURL>> kExpectedTargets{
+ make_pair(base::UTF8ToUTF16(kTargetName), GURL(kManifestUrlHigh))};
+ EXPECT_EQ(kExpectedTargets, share_service_helper()->GetTargetsInPicker());
+
+ // Pick example-high.com.
+ share_service_helper()->picker_callback().Run(
+ base::Optional<std::string>(kManifestUrlHigh));
+
+ EXPECT_TRUE(share_service_helper()->GetLastUsedTargetURL().empty());
+}
+
// Test to check that only targets with enough engagement were in picker.
TEST_F(ShareServiceImplUnittest, ShareWithSomeInsufficientlyEngagedTargets) {
share_service_helper()->AddShareTargetToPrefs(kManifestUrlMin, kTargetName,
« 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