diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-05-15 10:20:33 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-05-15 10:28:57 +0000 |
commit | d17ea114e5ef69ad5d5d7413280a13e6428098aa (patch) | |
tree | 2c01a75df69f30d27b1432467cfe7c1467a498da /chromium/services/network/restricted_cookie_manager_unittest.cc | |
parent | 8c5c43c7b138c9b4b0bf56d946e61d3bbc111bec (diff) | |
download | qtwebengine-chromium-d17ea114e5ef69ad5d5d7413280a13e6428098aa.tar.gz |
BASELINE: Update Chromium to 67.0.3396.47
Change-Id: Idcb1341782e417561a2473eeecc82642dafda5b7
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'chromium/services/network/restricted_cookie_manager_unittest.cc')
-rw-r--r-- | chromium/services/network/restricted_cookie_manager_unittest.cc | 84 |
1 files changed, 78 insertions, 6 deletions
diff --git a/chromium/services/network/restricted_cookie_manager_unittest.cc b/chromium/services/network/restricted_cookie_manager_unittest.cc index de4fd40383b..4e541b8a270 100644 --- a/chromium/services/network/restricted_cookie_manager_unittest.cc +++ b/chromium/services/network/restricted_cookie_manager_unittest.cc @@ -14,6 +14,7 @@ #include "net/cookies/cookie_store.h" #include "net/cookies/cookie_store_test_callbacks.h" #include "services/network/public/mojom/cookie_manager.mojom.h" +#include "testing/gmock/include/gmock/gmock-matchers.h" #include "testing/gtest/include/gtest/gtest.h" namespace network { @@ -151,7 +152,7 @@ TEST_F(RestrictedCookieManagerTest, GetAllForUrlBlankFilter) { GURL("http://example.com/test/"), GURL("http://example.com"), std::move(options)); - ASSERT_EQ(2u, cookies.size()); + ASSERT_THAT(cookies, testing::SizeIs(2)); std::sort(cookies.begin(), cookies.end(), &CompareCanonicalCookies); EXPECT_EQ("cookie-name", cookies[0].Name()); @@ -171,8 +172,7 @@ TEST_F(RestrictedCookieManagerTest, GetAllForUrlEmptyFilter) { GURL("http://example.com/test/"), GURL("http://example.com"), std::move(options)); - ASSERT_EQ(0u, cookies.size()); - std::sort(cookies.begin(), cookies.end(), &CompareCanonicalCookies); + ASSERT_THAT(cookies, testing::SizeIs(0)); } TEST_F(RestrictedCookieManagerTest, GetAllForUrlEqualsMatch) { @@ -186,7 +186,7 @@ TEST_F(RestrictedCookieManagerTest, GetAllForUrlEqualsMatch) { GURL("http://example.com/test/"), GURL("http://example.com"), std::move(options)); - ASSERT_EQ(1u, cookies.size()); + ASSERT_THAT(cookies, testing::SizeIs(1)); EXPECT_EQ("cookie-name", cookies[0].Name()); EXPECT_EQ("cookie-value", cookies[0].Value()); @@ -205,7 +205,7 @@ TEST_F(RestrictedCookieManagerTest, GetAllForUrlStartsWithMatch) { GURL("http://example.com/test/"), GURL("http://example.com"), std::move(options)); - ASSERT_EQ(2u, cookies.size()); + ASSERT_THAT(cookies, testing::SizeIs(2)); std::sort(cookies.begin(), cookies.end(), &CompareCanonicalCookies); EXPECT_EQ("cookie-name-2", cookies[0].Name()); @@ -231,10 +231,82 @@ TEST_F(RestrictedCookieManagerTest, SetCanonicalCookie) { GURL("http://example.com/test/"), GURL("http://example.com"), std::move(options)); - ASSERT_EQ(1u, cookies.size()); + ASSERT_THAT(cookies, testing::SizeIs(1)); EXPECT_EQ("new-name", cookies[0].Name()); EXPECT_EQ("new-value", cookies[0].Value()); } +namespace { + +// Stashes the cookie changes it receives, for testing. +class TestCookieChangeListener : public network::mojom::CookieChangeListener { + public: + // Records a cookie change received from RestrictedCookieManager. + struct Change { + Change(const net::CanonicalCookie& cookie, + network::mojom::CookieChangeCause change_cause) + : cookie(cookie), change_cause(change_cause) {} + + net::CanonicalCookie cookie; + network::mojom::CookieChangeCause change_cause; + }; + + TestCookieChangeListener(network::mojom::CookieChangeListenerRequest request) + : binding_(this, std::move(request)) {} + ~TestCookieChangeListener() override = default; + + // Spin in a run loop until a change is received. + void WaitForChange() { + base::RunLoop loop; + run_loop_ = &loop; + loop.Run(); + run_loop_ = nullptr; + } + + // Changes received by this listener. + const std::vector<Change>& observed_changes() const { + return observed_changes_; + } + + // network::mojom::CookieChangeListener + void OnCookieChange(const net::CanonicalCookie& cookie, + network::mojom::CookieChangeCause change_cause) override { + observed_changes_.emplace_back(cookie, change_cause); + + if (run_loop_) // Set in WaitForChange(). + run_loop_->Quit(); + } + + private: + std::vector<Change> observed_changes_; + mojo::Binding<network::mojom::CookieChangeListener> binding_; + + // If not null, will be stopped when a cookie change notification is received. + base::RunLoop* run_loop_ = nullptr; +}; + +} // anonymous namespace + +TEST_F(RestrictedCookieManagerTest, ChangeDispatch) { + network::mojom::CookieChangeListenerPtr listener_ptr; + network::mojom::CookieChangeListenerRequest request( + mojo::MakeRequest(&listener_ptr)); + service_->AddChangeListener(GURL("http://example.com/test/"), + GURL("http://example.com"), + std::move(listener_ptr)); + TestCookieChangeListener listener(std::move(request)); + + ASSERT_THAT(listener.observed_changes(), testing::SizeIs(0)); + + SetSessionCookie("cookie-name", "cookie-value", "example.com", "/"); + listener.WaitForChange(); + + ASSERT_THAT(listener.observed_changes(), testing::SizeIs(1)); + EXPECT_EQ(network::mojom::CookieChangeCause::INSERTED, + listener.observed_changes()[0].change_cause); + EXPECT_EQ("cookie-name", listener.observed_changes()[0].cookie.Name()); + EXPECT_EQ("cookie-value", listener.observed_changes()[0].cookie.Value()); +} + } // namespace network |