xref: /aosp_15_r20/external/cronet/net/websockets/websocket_extension_test.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2015 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "net/websockets/websocket_extension.h"
6 
7 #include <string>
8 #include "testing/gtest/include/gtest/gtest.h"
9 
10 namespace net {
11 
12 namespace {
13 
TEST(WebSocketExtensionTest,EquivalenceTest1)14 TEST(WebSocketExtensionTest, EquivalenceTest1) {
15   WebSocketExtension e1("hello");
16   WebSocketExtension e2("world");
17   EXPECT_FALSE(e1.Equivalent(e2));
18   EXPECT_FALSE(e2.Equivalent(e1));
19 }
20 
TEST(WebSocketExtensionTest,EquivalenceTest2)21 TEST(WebSocketExtensionTest, EquivalenceTest2) {
22   WebSocketExtension e1("world");
23   WebSocketExtension e2("world");
24   e1.Add(WebSocketExtension::Parameter("foo", "bar"));
25   e2.Add(WebSocketExtension::Parameter("foo"));
26   EXPECT_FALSE(e1.Equivalent(e2));
27   EXPECT_FALSE(e2.Equivalent(e1));
28 }
29 
TEST(WebSocketExtensionTest,EquivalenceTest3)30 TEST(WebSocketExtensionTest, EquivalenceTest3) {
31   WebSocketExtension e1("world");
32   WebSocketExtension e2("world");
33   e1.Add(WebSocketExtension::Parameter("foo", "bar"));
34   e1.Add(WebSocketExtension::Parameter("bar", "baz"));
35   e2.Add(WebSocketExtension::Parameter("bar", "baz"));
36   e2.Add(WebSocketExtension::Parameter("foo", "bar"));
37   EXPECT_TRUE(e1.Equivalent(e2));
38   EXPECT_TRUE(e2.Equivalent(e1));
39 }
40 
TEST(WebSocketExtensionTest,ValueOrderMattersToEquivalence)41 TEST(WebSocketExtensionTest, ValueOrderMattersToEquivalence) {
42   WebSocketExtension e1("world");
43   WebSocketExtension e2("world");
44   e1.Add(WebSocketExtension::Parameter("foo", "1"));
45   e1.Add(WebSocketExtension::Parameter("foo", "2"));
46   e1.Add(WebSocketExtension::Parameter("foo", "2"));
47   e1.Add(WebSocketExtension::Parameter("foo", "1"));
48   EXPECT_FALSE(e1.Equivalent(e2));
49   EXPECT_FALSE(e2.Equivalent(e1));
50 }
51 
TEST(WebSocketExtensionTest,EmptyToString)52 TEST(WebSocketExtensionTest, EmptyToString) {
53   EXPECT_EQ("", WebSocketExtension().ToString());
54 }
55 
TEST(WebSocketExtensionTest,SimpleToString)56 TEST(WebSocketExtensionTest, SimpleToString) {
57   EXPECT_EQ("foo", WebSocketExtension("foo").ToString());
58 }
59 
TEST(WebSocketExtensionTest,ToString)60 TEST(WebSocketExtensionTest, ToString) {
61   const std::string expected = "foo; bar; baz=hoge";
62 
63   WebSocketExtension e("foo");
64   e.Add(WebSocketExtension::Parameter("bar"));
65   e.Add(WebSocketExtension::Parameter("baz", "hoge"));
66   EXPECT_EQ(expected, e.ToString());
67 }
68 
69 }  // namespace
70 
71 }  // namespace net
72