diff options
8 files changed, 50 insertions, 34 deletions
diff --git a/components/autofill/content/browser/wallet/wallet_client_unittest.cc b/components/autofill/content/browser/wallet/wallet_client_unittest.cc index 8f805dd..c265051 100644 --- a/components/autofill/content/browser/wallet/wallet_client_unittest.cc +++ b/components/autofill/content/browser/wallet/wallet_client_unittest.cc @@ -1153,6 +1153,7 @@ TEST_F(WalletClientTest, AcceptLegalDocuments) { ScopedVector<WalletItems::LegalDocument> docs; base::DictionaryValue document; document.SetString("legal_document_id", "doc_id_1"); + document.SetString("url", "https://example.com"); document.SetString("display_name", "doc_1"); docs.push_back( WalletItems::LegalDocument::CreateLegalDocument(document).release()); @@ -1160,8 +1161,10 @@ TEST_F(WalletClientTest, AcceptLegalDocuments) { document.SetString("display_name", "doc_2"); docs.push_back( WalletItems::LegalDocument::CreateLegalDocument(document).release()); + ASSERT_TRUE(docs.back()); docs.push_back( WalletItems::LegalDocument::CreatePrivacyPolicyDocument().release()); + ASSERT_TRUE(docs.back()); wallet_client_->AcceptLegalDocuments(docs.get(), kGoogleTransactionId); VerifyAndFinishRequest(net::HTTP_OK, diff --git a/components/autofill/content/browser/wallet/wallet_items.cc b/components/autofill/content/browser/wallet/wallet_items.cc index 2687390..3b1c26d 100644 --- a/components/autofill/content/browser/wallet/wallet_items.cc +++ b/components/autofill/content/browser/wallet/wallet_items.cc @@ -11,6 +11,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/values.h" #include "components/autofill/content/browser/wallet/gaia_account.h" +#include "components/autofill/content/browser/wallet/wallet_service_url.h" #include "components/autofill/core/browser/autofill_type.h" #include "components/autofill/core/browser/credit_card.h" #include "grit/components_scaled_resources.h" @@ -25,10 +26,6 @@ namespace wallet { namespace { -const char kLegalDocumentUrl[] = - "https://wallet.google.com/legaldocument?docId="; -const char kPrivacyNoticeUrl[] = "https://wallet.google.com/files/privacy.html"; - // TODO(estade): move to base/. template<class T> bool VectorsAreEqual(const std::vector<T*>& a, const std::vector<T*>& b) { @@ -374,13 +371,20 @@ scoped_ptr<WalletItems::LegalDocument> return scoped_ptr<LegalDocument>(); } - return scoped_ptr<LegalDocument>(new LegalDocument(id, display_name)); + std::string url; + if (!dictionary.GetString("url", &url)) { + DLOG(ERROR) << "Response from Google Wallet missing URL"; + return scoped_ptr<LegalDocument>(); + } + + return scoped_ptr<LegalDocument>( + new LegalDocument(id, GURL(url), display_name)); } scoped_ptr<WalletItems::LegalDocument> WalletItems::LegalDocument::CreatePrivacyPolicyDocument() { return scoped_ptr<LegalDocument>(new LegalDocument( - GURL(kPrivacyNoticeUrl), + std::string(), GetPrivacyNoticeUrl(), l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_PRIVACY_POLICY_LINK))); } @@ -395,15 +399,10 @@ bool WalletItems::LegalDocument::operator!=(const LegalDocument& other) const { } WalletItems::LegalDocument::LegalDocument(const std::string& id, + const GURL& url, const base::string16& display_name) - : id_(id), - url_(kLegalDocumentUrl + id), - display_name_(display_name) {} - -WalletItems::LegalDocument::LegalDocument(const GURL& url, - const base::string16& display_name) - : url_(url), - display_name_(display_name) {} + : id_(id), url_(url), display_name_(display_name) { +} WalletItems::WalletItems(const std::vector<RequiredAction>& required_actions, const std::string& google_transaction_id, diff --git a/components/autofill/content/browser/wallet/wallet_items.h b/components/autofill/content/browser/wallet/wallet_items.h index e6121a2..fc54597 100644 --- a/components/autofill/content/browser/wallet/wallet_items.h +++ b/components/autofill/content/browser/wallet/wallet_items.h @@ -191,8 +191,7 @@ class WalletItems { FRIEND_TEST_ALL_PREFIXES(WalletItemsTest, LegalDocumentUrl); FRIEND_TEST_ALL_PREFIXES(WalletItemsTest, LegalDocumentEmptyId); LegalDocument(const std::string& id, - const base::string16& display_name); - LegalDocument(const GURL& url, + const GURL& url, const base::string16& display_name); // Externalized Online Wallet id for the document, or an empty string for diff --git a/components/autofill/content/browser/wallet/wallet_items_unittest.cc b/components/autofill/content/browser/wallet/wallet_items_unittest.cc index 0f3493d..2ebd30d 100644 --- a/components/autofill/content/browser/wallet/wallet_items_unittest.cc +++ b/components/autofill/content/browser/wallet/wallet_items_unittest.cc @@ -174,17 +174,20 @@ const char kMaskedInstrumentMissingObjectId[] = const char kLegalDocument[] = "{" " \"legal_document_id\":\"doc_id\"," - " \"display_name\":\"display_name\"" + " \"display_name\":\"display_name\"," + " \"url\":\"https://example.com\"" "}"; const char kLegalDocumentMissingDocumentId[] = "{" - " \"display_name\":\"display_name\"" + " \"display_name\":\"display_name\"," + " \"url\":\"https://example.com\"" "}"; const char kLegalDocumentMissingDisplayName[] = "{" - " \"legal_document_id\":\"doc_id\"" + " \"legal_document_id\":\"doc_id\"," + " \"url\":\"https://example.com\"" "}"; const char kWalletItemsWithRequiredActions[] = @@ -269,7 +272,8 @@ const char kWalletItemsMissingGoogleTransactionId[] = " [" " {" " \"legal_document_id\":\"doc_id\"," - " \"display_name\":\"display_name\"" + " \"display_name\":\"display_name\"," + " \"url\":\"https://example.com\"" " }" " ]" "}"; @@ -372,7 +376,8 @@ const char kRequiredLegalDocument[] = " [" " {" " \"legal_document_id\":\"doc_id\"," - " \"display_name\":\"display_name\"" + " \"display_name\":\"display_name\"," + " \"url\":\"https://example.com\"" " }" " ]"; @@ -471,20 +476,15 @@ TEST_F(WalletItemsTest, CreateLegalDocumentMissingDisplayName) { TEST_F(WalletItemsTest, CreateLegalDocument) { SetUpDictionary(kLegalDocument); - WalletItems::LegalDocument expected("doc_id", ASCIIToUTF16("display_name")); + WalletItems::LegalDocument expected("doc_id", GURL("https://example.com"), + ASCIIToUTF16("display_name")); EXPECT_EQ(expected, *WalletItems::LegalDocument::CreateLegalDocument(*dict)); } -TEST_F(WalletItemsTest, LegalDocumentUrl) { - WalletItems::LegalDocument legal_doc("doc_id", ASCIIToUTF16("display_name")); - EXPECT_EQ("https://wallet.google.com/legaldocument?docId=doc_id", - legal_doc.url().spec()); -} - TEST_F(WalletItemsTest, LegalDocumentEmptyId) { - WalletItems::LegalDocument legal_doc(GURL("http://example.com"), - ASCIIToUTF16("display_name")); + WalletItems::LegalDocument legal_doc( + std::string(), GURL("https://example.com"), ASCIIToUTF16("display_name")); EXPECT_TRUE(legal_doc.id().empty()); } @@ -609,7 +609,7 @@ TEST_F(WalletItemsTest, CreateWalletItems) { std::string(kRequiredLegalDocument) + std::string(kCloseJson)); scoped_ptr<WalletItems::LegalDocument> legal_document( - new WalletItems::LegalDocument("doc_id", + new WalletItems::LegalDocument("doc_id", GURL("https://example.com"), ASCIIToUTF16("display_name"))); expected.AddLegalDocument(legal_document.Pass()); expected.AddLegalDocument( diff --git a/components/autofill/content/browser/wallet/wallet_service_url.cc b/components/autofill/content/browser/wallet/wallet_service_url.cc index 5049e79..89338c8 100644 --- a/components/autofill/content/browser/wallet/wallet_service_url.cc +++ b/components/autofill/content/browser/wallet/wallet_service_url.cc @@ -118,6 +118,10 @@ GURL GetManageAddressesUrl(size_t user_index) { return GetBaseSecureUrl().Resolve(path); } +GURL GetPrivacyNoticeUrl() { + return GetWalletHostUrl().Resolve("legaldocument?family=0.privacynotice"); +} + GURL GetAcceptLegalDocumentsUrl(size_t user_index) { return GetBaseAutocheckoutUrl(user_index).Resolve("acceptLegalDocument"); } diff --git a/components/autofill/content/browser/wallet/wallet_service_url.h b/components/autofill/content/browser/wallet/wallet_service_url.h index 91923e9..7d5d571 100644 --- a/components/autofill/content/browser/wallet/wallet_service_url.h +++ b/components/autofill/content/browser/wallet/wallet_service_url.h @@ -18,6 +18,7 @@ GURL GetGetWalletItemsUrl(size_t user_index); GURL GetGetFullWalletUrl(size_t user_index); GURL GetManageInstrumentsUrl(size_t user_index); GURL GetManageAddressesUrl(size_t user_index); +GURL GetPrivacyNoticeUrl(); GURL GetAcceptLegalDocumentsUrl(size_t user_index); GURL GetAuthenticateInstrumentUrl(size_t user_index); GURL GetSaveToWalletNoEscrowUrl(size_t user_index); diff --git a/components/autofill/content/browser/wallet/wallet_service_url_unittest.cc b/components/autofill/content/browser/wallet/wallet_service_url_unittest.cc index 2d43828..d2f562d 100644 --- a/components/autofill/content/browser/wallet/wallet_service_url_unittest.cc +++ b/components/autofill/content/browser/wallet/wallet_service_url_unittest.cc @@ -16,9 +16,10 @@ TEST(WalletServiceSandboxUrl, CheckSandboxUrls) { CommandLine::ForCurrentProcess()->AppendSwitchASCII( switches::kWalletServiceUseSandbox, "1"); - EXPECT_EQ("https://wallet-web.sandbox.google.com/online/v2/u/1/wallet/" - "autocheckout/v1/getWalletItemsJwtless", - GetGetWalletItemsUrl(1).spec()); + EXPECT_EQ( + "https://wallet-web.sandbox.google.com/online/v2/u/1/wallet/" + "autocheckout/v1/getWalletItemsJwtless", + GetGetWalletItemsUrl(1).spec()); EXPECT_EQ("https://wallet-web.sandbox.google.com/online-secure/v2/u/1/" "autocheckout/v1/getFullWalletJwtless?s7e=otp", GetGetFullWalletUrl(1).spec()); @@ -27,6 +28,10 @@ TEST(WalletServiceSandboxUrl, CheckSandboxUrls) { EXPECT_EQ("https://wallet-web.sandbox.google.com/manage/w/1/settings/" "addresses", GetManageAddressesUrl(1).spec()); + EXPECT_EQ( + "https://wallet-web.sandbox.google.com/" + "legaldocument?family=0.privacynotice", + GetPrivacyNoticeUrl().spec()); EXPECT_EQ("https://wallet-web.sandbox.google.com/online/v2/u/1/wallet/" "autocheckout/v1/acceptLegalDocument", GetAcceptLegalDocumentsUrl(1).spec()); @@ -58,6 +63,10 @@ TEST(WalletServiceSandboxUrl, CheckProdUrls) { GetManageInstrumentsUrl(1).spec()); EXPECT_EQ("https://wallet.google.com/manage/w/1/settings/addresses", GetManageAddressesUrl(1).spec()); + EXPECT_EQ( + "https://wallet.google.com/" + "legaldocument?family=0.privacynotice", + GetPrivacyNoticeUrl().spec()); EXPECT_EQ("https://wallet.google.com/online/v2/u/1/wallet/" "autocheckout/v1/acceptLegalDocument", GetAcceptLegalDocumentsUrl(1).spec()); diff --git a/components/autofill/content/browser/wallet/wallet_test_util.cc b/components/autofill/content/browser/wallet/wallet_test_util.cc index 8ca992a..cd79a06 100644 --- a/components/autofill/content/browser/wallet/wallet_test_util.cc +++ b/components/autofill/content/browser/wallet/wallet_test_util.cc @@ -174,6 +174,7 @@ scoped_ptr<Instrument> GetTestAddressNameChangeInstrument() { scoped_ptr<WalletItems::LegalDocument> GetTestLegalDocument() { base::DictionaryValue dict; dict.SetString("legal_document_id", "document_id"); + dict.SetString("url", "https://example.com"); dict.SetString("display_name", "display_name"); return wallet::WalletItems::LegalDocument::CreateLegalDocument(dict); } |