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

Side by Side Diff: net/websockets/websocket_stream_test.cc

Issue 869073002: Add WebSocket cookie tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 | « no previous file | net/websockets/websocket_test_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "net/websockets/websocket_stream.h" 5 #include "net/websockets/websocket_stream.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 const std::string& extra_request_headers, 117 const std::string& extra_request_headers,
118 const std::string& response_body, 118 const std::string& response_body,
119 scoped_ptr<base::Timer> timer = scoped_ptr<base::Timer>()) { 119 scoped_ptr<base::Timer> timer = scoped_ptr<base::Timer>()) {
120 url_request_context_host_.SetExpectations( 120 url_request_context_host_.SetExpectations(
121 WebSocketStandardRequest(socket_path, socket_host, origin, 121 WebSocketStandardRequest(socket_path, socket_host, origin,
122 extra_request_headers), 122 extra_request_headers),
123 response_body); 123 response_body);
124 CreateAndConnectStream(socket_url, sub_protocols, origin, timer.Pass()); 124 CreateAndConnectStream(socket_url, sub_protocols, origin, timer.Pass());
125 } 125 }
126 126
127 void CreateAndConnectCustomResponseWithCookies(
128 const std::string& socket_url,
129 const std::string& socket_host,
130 const std::string& socket_path,
Ryan Sleevi 2015/01/24 04:13:07 Why is this not simply a single GURL? [edit: I gu
Adam Rice 2015/01/26 06:38:59 Because then both the production code and the test
Ryan Sleevi 2015/01/27 00:47:22 I'm sorry, I don't understand this? It's not your
Adam Rice 2015/01/27 06:32:46 In principle, yes. However, if the implementation
Ryan Sleevi 2015/01/27 22:28:10 Because quality matters. Because I've had to deal
131 const std::vector<std::string>& sub_protocols,
132 const std::string& origin,
133 const std::string& cookies,
134 const std::string& extra_request_headers,
135 const std::string& response_body,
136 scoped_ptr<base::Timer> timer = scoped_ptr<base::Timer>()) {
137 url_request_context_host_.SetExpectations(
138 WebSocketStandardRequestWithCookies(socket_path, socket_host, origin,
139 cookies, extra_request_headers),
140 response_body);
141 CreateAndConnectStream(socket_url, sub_protocols, origin, timer.Pass());
142 }
143
127 // |extra_request_headers| and |extra_response_headers| must end in "\r\n" or 144 // |extra_request_headers| and |extra_response_headers| must end in "\r\n" or
128 // errors like "Unable to perform synchronous IO while stopped" will occur. 145 // errors like "Unable to perform synchronous IO while stopped" will occur.
129 void CreateAndConnectStandard( 146 void CreateAndConnectStandard(
130 const std::string& socket_url, 147 const std::string& socket_url,
131 const std::string& socket_host, 148 const std::string& socket_host,
132 const std::string& socket_path, 149 const std::string& socket_path,
133 const std::vector<std::string>& sub_protocols, 150 const std::vector<std::string>& sub_protocols,
134 const std::string& origin, 151 const std::string& origin,
135 const std::string& extra_request_headers, 152 const std::string& extra_request_headers,
136 const std::string& extra_response_headers, 153 const std::string& extra_response_headers,
137 scoped_ptr<base::Timer> timer = scoped_ptr<base::Timer>()) { 154 scoped_ptr<base::Timer> timer = scoped_ptr<base::Timer>()) {
138 CreateAndConnectCustomResponse( 155 CreateAndConnectCustomResponse(
139 socket_url, socket_host, socket_path, sub_protocols, origin, 156 socket_url, socket_host, socket_path, sub_protocols, origin,
140 extra_request_headers, 157 extra_request_headers,
141 WebSocketStandardResponse(extra_response_headers), timer.Pass()); 158 WebSocketStandardResponse(extra_response_headers), timer.Pass());
142 } 159 }
143 160
161 // |cookies| must be empty or end with "\r\n".
162 // |extra_request_headers| and |extra_response_headers| must end in "\r\n" or
163 // errors like "Unable to perform synchronous IO while stopped" will occur.
Ryan Sleevi 2015/01/24 04:13:08 Both of these seem undesirable. Can this be expres
Adam Rice 2015/01/26 06:38:59 How? We can't make compile-time assertions about t
Ryan Sleevi 2015/01/27 00:47:22 It seems entirely pointless to require "" or "some
Adam Rice 2015/01/27 06:32:46 That's logic. Logic requires tests. At some point
Ryan Sleevi 2015/01/27 22:28:10 I'm sorry, I really have to disagree with you on y
164 void CreateAndConnectStandardWithCookies(
165 const std::string& socket_url,
166 const std::string& socket_host,
167 const std::string& socket_path,
168 const std::vector<std::string>& sub_protocols,
169 const std::string& origin,
170 const std::string& cookies,
171 const std::string& extra_request_headers,
172 const std::string& extra_response_headers,
173 scoped_ptr<base::Timer> timer = scoped_ptr<base::Timer>()) {
174 CreateAndConnectCustomResponseWithCookies(
175 socket_url, socket_host, socket_path, sub_protocols, origin, cookies,
176 extra_request_headers,
177 WebSocketStandardResponse(extra_response_headers), timer.Pass());
178 }
179
144 void CreateAndConnectRawExpectations( 180 void CreateAndConnectRawExpectations(
145 const std::string& socket_url, 181 const std::string& socket_url,
146 const std::vector<std::string>& sub_protocols, 182 const std::vector<std::string>& sub_protocols,
147 const std::string& origin, 183 const std::string& origin,
148 scoped_ptr<DeterministicSocketData> socket_data, 184 scoped_ptr<DeterministicSocketData> socket_data,
149 scoped_ptr<base::Timer> timer = scoped_ptr<base::Timer>()) { 185 scoped_ptr<base::Timer> timer = scoped_ptr<base::Timer>()) {
150 AddRawExpectations(socket_data.Pass()); 186 AddRawExpectations(socket_data.Pass());
151 CreateAndConnectStream(socket_url, sub_protocols, origin, timer.Pass()); 187 CreateAndConnectStream(socket_url, sub_protocols, origin, timer.Pass());
152 } 188 }
153 189
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 }; 445 };
410 446
411 scoped_ptr<base::HistogramSamples> GetSamples(const std::string& name) { 447 scoped_ptr<base::HistogramSamples> GetSamples(const std::string& name) {
412 base::HistogramBase* histogram = 448 base::HistogramBase* histogram =
413 base::StatisticsRecorder::FindHistogram(name); 449 base::StatisticsRecorder::FindHistogram(name);
414 return histogram ? histogram->SnapshotSamples() 450 return histogram ? histogram->SnapshotSamples()
415 : scoped_ptr<base::HistogramSamples>(); 451 : scoped_ptr<base::HistogramSamples>();
416 } 452 }
417 }; 453 };
418 454
455 struct WebSocketStreamUseCookieTestParameter {
Ryan Sleevi 2015/01/24 04:13:08 Document & Pluralize (Parameters)
456 WebSocketStreamUseCookieTestParameter(const GURL& url,
Ryan Sleevi 2015/01/24 04:13:07 Document
457 const GURL& cookie_url,
458 const std::string& origin,
459 const std::string& cookie_line,
460 const std::string& cookies)
461 : url(url),
462 cookie_url(cookie_url),
463 origin(origin),
464 cookie_line(cookie_line),
465 cookies(cookies) {}
466
467 const GURL url;
468 const GURL cookie_url;
469 const std::string origin;
470 const std::string cookie_line;
471 const std::string cookies;
Ryan Sleevi 2015/01/24 04:13:07 Making these const prevents operator=, which would
472 };
473
474 class WebSocketStreamUseCookieTest
475 : public WebSocketStreamCreateTest,
476 public ::testing::WithParamInterface<
477 WebSocketStreamUseCookieTestParameter> {
478 public:
479 void SetCookie(CookieStore* store,
480 const GURL& url,
481 const std::string& cookie_line) {
482 class RunLoop {
Ryan Sleevi 2015/01/24 04:13:07 This is deeply confusing, because it shadows a nam
483 public:
484 void Run() { run_loop_.Run(); }
485 void Quit(bool) { run_loop_.Quit(); }
486
487 private:
488 base::RunLoop run_loop_;
489 };
490
491 RunLoop run_loop;
492 store->SetCookieWithOptionsAsync(
493 url, cookie_line, CookieOptions(),
494 base::Bind(&RunLoop::Quit, base::Unretained(&run_loop)));
Ryan Sleevi 2015/01/24 04:13:07 You should be using https://code.google.com/p/chro
Adam Rice 2015/01/26 06:38:59 We need to swallow the bool parameter that SetCook
Ryan Sleevi 2015/01/27 00:47:22 Then just use a bound free function static void I
495 run_loop.Run();
496 }
497 };
498
499 class WebSocketStreamSetCookieTest
500 : public WebSocketStreamCreateTest,
501 public ::testing::WithParamInterface<
502 WebSocketStreamUseCookieTestParameter> {
503 public:
504 std::string GetCookies(CookieStore* store, const GURL& url) {
505 struct GetCookiesHelper {
506 void Run() { run_loop_.Run(); }
507 void Quit(const std::string& cookies) {
508 cookies_ = cookies;
509 run_loop_.Quit();
510 }
511
512 const std::string& cookies() const { return cookies_; }
513
514 private:
515 base::RunLoop run_loop_;
516 std::string cookies_;
517 };
518 GetCookiesHelper helper;
519
520 store->GetCookiesWithOptionsAsync(
521 url, CookieOptions(),
522 base::Bind(&GetCookiesHelper::Quit, base::Unretained(&helper)));
Ryan Sleevi 2015/01/24 04:13:08 static void StashCookiesHelper(const base::Closure
523 helper.Run();
524 return helper.cookies();
525 }
526 };
527
419 // Confirm that the basic case works as expected. 528 // Confirm that the basic case works as expected.
420 TEST_F(WebSocketStreamCreateTest, SimpleSuccess) { 529 TEST_F(WebSocketStreamCreateTest, SimpleSuccess) {
421 CreateAndConnectStandard("ws://localhost/", "localhost", "/", 530 CreateAndConnectStandard("ws://localhost/", "localhost", "/",
422 NoSubProtocols(), "http://localhost", "", ""); 531 NoSubProtocols(), "http://localhost", "", "");
423 EXPECT_FALSE(request_info_); 532 EXPECT_FALSE(request_info_);
424 EXPECT_FALSE(response_info_); 533 EXPECT_FALSE(response_info_);
425 RunUntilIdle(); 534 RunUntilIdle();
426 EXPECT_FALSE(has_failed()); 535 EXPECT_FALSE(has_failed());
427 EXPECT_TRUE(stream_); 536 EXPECT_TRUE(stream_);
428 EXPECT_TRUE(request_info_); 537 EXPECT_TRUE(request_info_);
(...skipping 945 matching lines...) Expand 10 before | Expand all | Expand 10 after
1374 scoped_ptr<base::HistogramSamples> samples(GetSamples(name)); 1483 scoped_ptr<base::HistogramSamples> samples(GetSamples(name));
1375 ASSERT_TRUE(samples); 1484 ASSERT_TRUE(samples);
1376 if (original) { 1485 if (original) {
1377 samples->Subtract(*original); // Cancel the original values. 1486 samples->Subtract(*original); // Cancel the original values.
1378 } 1487 }
1379 EXPECT_EQ(1, samples->GetCount(INCOMPLETE)); 1488 EXPECT_EQ(1, samples->GetCount(INCOMPLETE));
1380 EXPECT_EQ(0, samples->GetCount(CONNECTED)); 1489 EXPECT_EQ(0, samples->GetCount(CONNECTED));
1381 EXPECT_EQ(0, samples->GetCount(FAILED)); 1490 EXPECT_EQ(0, samples->GetCount(FAILED));
1382 } 1491 }
1383 1492
1493 TEST_P(WebSocketStreamUseCookieTest, UseCookie) {
1494 // In case we use a TLS connection.
Ryan Sleevi 2015/01/24 04:13:07 This comment doesn't make sense. It sounds like yo
1495 ssl_data_.push_back(new SSLSocketDataProvider(ASYNC, OK));
1496
1497 CookieStore* store =
1498 url_request_context_host_.GetURLRequestContext()->cookie_store();
1499
1500 const GURL& url = GetParam().url;
1501 const GURL& cookie_url = GetParam().cookie_url;
1502 const std::string& origin = GetParam().origin;
1503 const std::string& cookie_line = GetParam().cookie_line;
1504 const std::string& cookies = GetParam().cookies;
1505
1506 SetCookie(store, cookie_url, cookie_line);
1507
1508 CreateAndConnectStandardWithCookies(url.spec(), url.host(), url.path(),
1509 NoSubProtocols(), origin, cookies, "",
1510 "");
Ryan Sleevi 2015/01/24 04:13:08 s/""/std::string()/
1511
1512 RunUntilIdle();
1513 EXPECT_FALSE(has_failed());
1514 }
1515
1516 INSTANTIATE_TEST_CASE_P(
1517 WebSocketStreamUseCookieTest,
1518 WebSocketStreamUseCookieTest,
1519 ::testing::Values(
1520 // Non-secure cookies for ws
1521 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
Ryan Sleevi 2015/01/24 04:13:07 If you deal with the constness I mentioned above,
yhirano 2015/01/26 07:01:40 IIUC having constant members is not related to ini
Ryan Sleevi 2015/01/27 00:47:22 Using { } to initialize POD structs is not a C++11
Adam Rice 2015/01/27 06:32:46 Indeed. Brace-initialisation of function arguments
Ryan Sleevi 2015/01/27 22:28:10 This hasn't applied to unit tests historically, bu
1522 GURL("http://www.example.com"),
1523 "http://www.example.com",
1524 "test-cookie",
1525 "Cookie: test-cookie\r\n"),
Ryan Sleevi 2015/01/24 04:13:08 The amount of copy-pasta for thees \r\n makes it s
1526
1527 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1528 GURL("https://www.example.com"),
1529 "http://www.example.com",
1530 "test-cookie",
1531 "Cookie: test-cookie\r\n"),
1532
1533 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1534 GURL("ws://www.example.com"),
1535 "http://www.example.com",
1536 "test-cookie",
1537 "Cookie: test-cookie\r\n"),
1538
1539 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1540 GURL("wss://www.example.com"),
1541 "http://www.example.com",
1542 "test-cookie",
1543 "Cookie: test-cookie\r\n"),
1544
1545 // Non-secure cookies for wss
1546 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1547 GURL("http://www.example.com"),
1548 "https://www.example.com",
1549 "test-cookie",
1550 "Cookie: test-cookie\r\n"),
1551
1552 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1553 GURL("https://www.example.com"),
1554 "https://www.example.com",
1555 "test-cookie",
1556 "Cookie: test-cookie\r\n"),
1557
1558 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1559 GURL("ws://www.example.com"),
1560 "https://www.example.com",
1561 "test-cookie",
1562 "Cookie: test-cookie\r\n"),
1563
1564 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1565 GURL("wss://www.example.com"),
1566 "https://www.example.com",
1567 "test-cookie",
1568 "Cookie: test-cookie\r\n"),
1569
1570 // Secure-cookies for ws
1571 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1572 GURL("https://www.example.com"),
1573 "http://www.example.com",
1574 "test-cookie; secure",
1575 ""),
1576
1577 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1578 GURL("wss://www.example.com"),
1579 "http://www.example.com",
1580 "test-cookie; secure",
1581 ""),
1582
1583 // Secure-cookies for wss
1584 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1585 GURL("https://www.example.com"),
1586 "https://www.example.com",
1587 "test-cookie; secure",
1588 "Cookie: test-cookie\r\n"),
1589
1590 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1591 GURL("wss://www.example.com"),
1592 "https://www.example.com",
1593 "test-cookie; secure",
1594 "Cookie: test-cookie\r\n"),
1595
1596 // Non-secure cookies for ws (sharing domain)
1597 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1598 GURL("http://www2.example.com"),
1599 "http://www.example.com",
1600 "test-cookie; Domain=example.com",
1601 "Cookie: test-cookie\r\n"),
1602
1603 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1604 GURL("https://www2.example.com"),
1605 "http://www.example.com",
1606 "test-cookie; Domain=example.com",
1607 "Cookie: test-cookie\r\n"),
1608
1609 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1610 GURL("ws://www2.example.com"),
1611 "http://www.example.com",
1612 "test-cookie; Domain=example.com",
1613 "Cookie: test-cookie\r\n"),
1614
1615 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1616 GURL("wss://www2.example.com"),
1617 "http://www.example.com",
1618 "test-cookie; Domain=example.com",
1619 "Cookie: test-cookie\r\n"),
1620
1621 // Non-secure cookies for wss (sharing domain)
1622 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1623 GURL("http://www2.example.com"),
1624 "https://www.example.com",
1625 "test-cookie; Domain=example.com",
1626 "Cookie: test-cookie\r\n"),
1627
1628 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1629 GURL("https://www2.example.com"),
1630 "https://www.example.com",
1631 "test-cookie; Domain=example.com",
1632 "Cookie: test-cookie\r\n"),
1633
1634 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1635 GURL("ws://www2.example.com"),
1636 "https://www.example.com",
1637 "test-cookie; Domain=example.com",
1638 "Cookie: test-cookie\r\n"),
1639
1640 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1641 GURL("wss://www2.example.com"),
1642 "https://www.example.com",
1643 "test-cookie; Domain=example.com",
1644 "Cookie: test-cookie\r\n"),
1645
1646 // Secure-cookies for ws (sharing domain)
1647 WebSocketStreamUseCookieTestParameter(
1648 GURL("ws://www.example.com"),
1649 GURL("https://www2.example.com"),
1650 "http://www.example.com",
1651 "test-cookie; Domain=example.com; secure",
1652 ""),
Ryan Sleevi 2015/01/24 04:13:08 s/""/std::string()/
1653
1654 WebSocketStreamUseCookieTestParameter(
1655 GURL("ws://www.example.com"),
1656 GURL("wss://www2.example.com"),
1657 "http://www.example.com",
1658 "test-cookie; Domain=example.com; secure",
1659 ""),
1660
1661 // Secure-cookies for wss (sharing domain)
1662 WebSocketStreamUseCookieTestParameter(
1663 GURL("wss://www.example.com"),
1664 GURL("https://www2.example.com"),
1665 "https://www.example.com",
1666 "test-cookie; Domain=example.com; secure",
1667 "Cookie: test-cookie\r\n"),
1668
1669 WebSocketStreamUseCookieTestParameter(
1670 GURL("wss://www.example.com"),
1671 GURL("wss://www2.example.com"),
1672 "https://www.example.com",
1673 "test-cookie; Domain=example.com; secure",
1674 "Cookie: test-cookie\r\n"),
1675
1676 // Non-matching cookies for ws
1677 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1678 GURL("http://www2.example.com"),
1679 "http://www.example.com",
1680 "test-cookie",
1681 ""),
1682
1683 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1684 GURL("https://www2.example.com"),
1685 "http://www.example.com",
1686 "test-cookie",
1687 ""),
1688
1689 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1690 GURL("ws://www2.example.com"),
1691 "http://www.example.com",
1692 "test-cookie",
1693 ""),
1694
1695 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1696 GURL("wss://www2.example.com"),
1697 "http://www.example.com",
1698 "test-cookie",
1699 ""),
1700
1701 // Non-matching cookies for wss
1702 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1703 GURL("http://www2.example.com"),
1704 "https://www.example.com",
1705 "test-cookie",
1706 ""),
1707
1708 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1709 GURL("https://www2.example.com"),
1710 "https://www.example.com",
1711 "test-cookie",
1712 ""),
1713
1714 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1715 GURL("ws://www2.example.com"),
1716 "https://www.example.com",
1717 "test-cookie",
1718 ""),
1719
1720 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1721 GURL("wss://www2.example.com"),
1722 "https://www.example.com",
1723 "test-cookie",
1724 "")));
1725
1726 TEST_P(WebSocketStreamSetCookieTest, SetCookie) {
1727 // In case we use a TLS connection.
1728 ssl_data_.push_back(new SSLSocketDataProvider(ASYNC, OK));
1729
1730 const GURL& url = GetParam().url;
1731 const GURL& cookie_url = GetParam().cookie_url;
1732 const std::string& origin = GetParam().origin;
1733 const std::string& cookie_line = GetParam().cookie_line;
1734 const std::string& cookies = GetParam().cookies;
1735
1736 const std::string response = base::StringPrintf(
1737 "HTTP/1.1 101 Switching Protocols\r\n"
1738 "Upgrade: websocket\r\n"
1739 "Connection: Upgrade\r\n"
1740 "%s"
1741 "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n"
1742 "\r\n",
1743 cookies.c_str());
1744
1745 CookieStore* store =
1746 url_request_context_host_.GetURLRequestContext()->cookie_store();
1747
1748 CreateAndConnectCustomResponse(url.spec(), url.host(), url.path(),
1749 NoSubProtocols(), origin, "", response);
1750
1751 RunUntilIdle();
1752 EXPECT_FALSE(has_failed());
1753
1754 EXPECT_EQ(cookie_line, GetCookies(store, cookie_url));
1755 }
1756
1757 INSTANTIATE_TEST_CASE_P(
1758 WebSocketStreamSetCookieTest,
1759 WebSocketStreamSetCookieTest,
1760 ::testing::Values(
1761 // Cookies for ws
Adam Rice 2015/01/23 12:58:00 Nitpick: the cookie comes *from* ws (or is "set by
1762 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1763 GURL("http://www.example.com"),
1764 "http://www.example.com",
1765 "test-cookie",
1766 "Set-Cookie: test-cookie\r\n"),
1767
1768 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1769 GURL("https://www.example.com"),
1770 "http://www.example.com",
1771 "test-cookie",
1772 "Set-Cookie: test-cookie\r\n"),
1773
1774 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1775 GURL("ws://www.example.com"),
1776 "http://www.example.com",
1777 "test-cookie",
1778 "Set-Cookie: test-cookie\r\n"),
1779
1780 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1781 GURL("wss://www.example.com"),
1782 "http://www.example.com",
1783 "test-cookie",
1784 "Set-Cookie: test-cookie\r\n"),
1785
1786 // Cookies for wss
Adam Rice 2015/01/23 12:58:00 Maybe we should test that the "Secure" attribute w
1787 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1788 GURL("http://www.example.com"),
1789 "https://www.example.com",
1790 "test-cookie",
1791 "Set-Cookie: test-cookie\r\n"),
1792
1793 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1794 GURL("https://www.example.com"),
1795 "https://www.example.com",
1796 "test-cookie",
1797 "Set-Cookie: test-cookie\r\n"),
1798
1799 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1800 GURL("ws://www.example.com"),
1801 "https://www.example.com",
1802 "test-cookie",
1803 "Set-Cookie: test-cookie\r\n"),
1804
1805 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1806 GURL("wss://www.example.com"),
1807 "https://www.example.com",
1808 "test-cookie",
1809 "Set-Cookie: test-cookie\r\n"),
1810
1811 // cookies for ws (sharing domain)
1812 WebSocketStreamUseCookieTestParameter(
1813 GURL("ws://www.example.com"),
1814 GURL("http://www2.example.com"),
1815 "http://www.example.com",
1816 "test-cookie",
1817 "Set-Cookie: test-cookie; Domain=example.com\r\n"),
1818
1819 WebSocketStreamUseCookieTestParameter(
1820 GURL("ws://www.example.com"),
1821 GURL("https://www2.example.com"),
1822 "http://www.example.com",
1823 "test-cookie",
1824 "Set-Cookie: test-cookie; Domain=example.com\r\n"),
1825
1826 WebSocketStreamUseCookieTestParameter(
1827 GURL("ws://www.example.com"),
1828 GURL("ws://www2.example.com"),
1829 "http://www.example.com",
1830 "test-cookie",
1831 "Set-Cookie: test-cookie; Domain=example.com\r\n"),
1832
1833 WebSocketStreamUseCookieTestParameter(
1834 GURL("ws://www.example.com"),
1835 GURL("wss://www2.example.com"),
1836 "http://www.example.com",
1837 "test-cookie",
1838 "Set-Cookie: test-cookie; Domain=example.com\r\n"),
1839
1840 // cookies for wss (sharing domain)
1841 WebSocketStreamUseCookieTestParameter(
1842 GURL("wss://www.example.com"),
1843 GURL("http://www2.example.com"),
1844 "https://www.example.com",
1845 "test-cookie",
1846 "Set-Cookie: test-cookie; Domain=example.com\r\n"),
1847
1848 WebSocketStreamUseCookieTestParameter(
1849 GURL("wss://www.example.com"),
1850 GURL("https://www2.example.com"),
1851 "https://www.example.com",
1852 "test-cookie",
1853 "Set-Cookie: test-cookie; Domain=example.com\r\n"),
1854
1855 WebSocketStreamUseCookieTestParameter(
1856 GURL("wss://www.example.com"),
1857 GURL("ws://www2.example.com"),
1858 "https://www.example.com",
1859 "test-cookie",
1860 "Set-Cookie: test-cookie; Domain=example.com\r\n"),
1861
1862 WebSocketStreamUseCookieTestParameter(
1863 GURL("wss://www.example.com"),
1864 GURL("wss://www2.example.com"),
1865 "https://www.example.com",
1866 "test-cookie",
1867 "Set-Cookie: test-cookie; Domain=example.com\r\n"),
1868
1869 // Non-matching cookies for ws
1870 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1871 GURL("http://www2.example.com"),
1872 "http://www.example.com",
1873 "",
1874 "Set-Cookie: test-cookie\r\n"),
1875
1876 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1877 GURL("https://www2.example.com"),
1878 "http://www.example.com",
1879 "",
1880 "Set-Cookie: test-cookie\r\n"),
1881
1882 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1883 GURL("ws://www2.example.com"),
1884 "http://www.example.com",
1885 "",
1886 "Set-Cookie: test-cookie\r\n"),
1887
1888 WebSocketStreamUseCookieTestParameter(GURL("ws://www.example.com"),
1889 GURL("wss://www2.example.com"),
1890 "http://www.example.com",
1891 "",
1892 "Set-Cookie: test-cookie\r\n"),
1893
1894 // Non-matching cookies for wss
1895 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1896 GURL("http://www2.example.com"),
1897 "https://www.example.com",
1898 "",
1899 "Set-Cookie: test-cookie\r\n"),
1900
1901 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1902 GURL("https://www2.example.com"),
1903 "https://www.example.com",
1904 "",
1905 "Set-Cookie: test-cookie\r\n"),
1906
1907 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1908 GURL("ws://www2.example.com"),
1909 "https://www.example.com",
1910 "",
1911 "Set-Cookie: test-cookie\r\n"),
1912
1913 WebSocketStreamUseCookieTestParameter(GURL("wss://www.example.com"),
1914 GURL("wss://www2.example.com"),
1915 "https://www.example.com",
1916 "",
1917 "Set-Cookie: test-cookie\r\n")));
1918
1384 } // namespace 1919 } // namespace
1385 } // namespace net 1920 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | net/websockets/websocket_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698