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