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

Side by Side Diff: remoting/base/capabilities_unittest.cc

Issue 2695883003: Change uses of base::JoinString to pass StringPieces where possible. (Closed)
Patch Set: Remove dependency CL. Created 3 years, 8 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 | « remoting/base/capabilities.cc ('k') | ui/gl/gl_implementation.cc » ('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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/strings/string_piece.h"
11 #include "base/strings/string_split.h" 12 #include "base/strings/string_split.h"
12 #include "base/strings/string_util.h" 13 #include "base/strings/string_util.h"
13 #include "remoting/base/capabilities.h" 14 #include "remoting/base/capabilities.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 16
16 namespace { 17 namespace {
17 18
18 struct HasCapabilityTestData { 19 struct HasCapabilityTestData {
19 const char* capabilities; 20 const char* capabilities;
20 const char* key; 21 const char* key;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 { "a b", "z", false }, 59 { "a b", "z", false },
59 { "a b c", "", false }, 60 { "a b c", "", false },
60 { "a b c", "a", true }, 61 { "a b c", "a", true },
61 { "a b c", "b", true }, 62 { "a b c", "b", true },
62 { "a b c", "z", false } 63 { "a b c", "z", false }
63 }; 64 };
64 65
65 // Verify that HasCapability(|capabilities|, |key|) returns |result|. 66 // Verify that HasCapability(|capabilities|, |key|) returns |result|.
66 // |result|. 67 // |result|.
67 for (size_t i = 0; i < arraysize(data); ++i) { 68 for (size_t i = 0; i < arraysize(data); ++i) {
68 std::vector<std::string> caps = base::SplitString( 69 std::vector<base::StringPiece> caps =
69 data[i].capabilities, " ", base::KEEP_WHITESPACE, 70 base::SplitStringPiece(data[i].capabilities, " ", base::KEEP_WHITESPACE,
70 base::SPLIT_WANT_NONEMPTY); 71 base::SPLIT_WANT_NONEMPTY);
71 do { 72 do {
72 EXPECT_EQ(data[i].result, 73 EXPECT_EQ(data[i].result,
73 HasCapability(base::JoinString(caps, " "), data[i].key)); 74 HasCapability(base::JoinString(caps, " "), data[i].key));
74 } while (std::next_permutation(caps.begin(), caps.end())); 75 } while (std::next_permutation(caps.begin(), caps.end()));
75 } 76 }
76 } 77 }
77 78
78 TEST(CapabilitiesTest, Intersect) { 79 TEST(CapabilitiesTest, Intersect) {
79 EXPECT_EQ(IntersectCapabilities("a", "a"), "a"); 80 EXPECT_EQ(IntersectCapabilities("a", "a"), "a");
80 81
81 IntersectTestData data[] = { 82 IntersectTestData data[] = {
82 { "", "", "" }, 83 { "", "", "" },
83 { "a", "", "" }, 84 { "a", "", "" },
84 { "a", "a", "a" }, 85 { "a", "a", "a" },
85 { "a", "b", "" }, 86 { "a", "b", "" },
86 { "a b", "", "" }, 87 { "a b", "", "" },
87 { "a b", "a", "a" }, 88 { "a b", "a", "a" },
88 { "a b", "b", "b" }, 89 { "a b", "b", "b" },
89 { "a b", "z", "" }, 90 { "a b", "z", "" },
90 { "a b c", "a", "a" }, 91 { "a b c", "a", "a" },
91 { "a b c", "b", "b" }, 92 { "a b c", "b", "b" },
92 { "a b c", "a b", "a b" }, 93 { "a b c", "a b", "a b" },
93 { "a b c", "b a", "a b" }, 94 { "a b c", "b a", "a b" },
94 { "a b c", "z", "" } 95 { "a b c", "z", "" }
95 }; 96 };
96 97
97 // Verify that intersection of |right| with all permutations of |left| yields 98 // Verify that intersection of |right| with all permutations of |left| yields
98 // |result|. 99 // |result|.
99 for (size_t i = 0; i < arraysize(data); ++i) { 100 for (size_t i = 0; i < arraysize(data); ++i) {
100 std::vector<std::string> caps = base::SplitString( 101 std::vector<base::StringPiece> caps = base::SplitStringPiece(
101 data[i].left, " ", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY); 102 data[i].left, " ", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
102 do { 103 do {
103 EXPECT_EQ(data[i].result, 104 EXPECT_EQ(data[i].result,
104 IntersectCapabilities(base::JoinString(caps, " "), 105 IntersectCapabilities(base::JoinString(caps, " "),
105 data[i].right)); 106 data[i].right));
106 } while (std::next_permutation(caps.begin(), caps.end())); 107 } while (std::next_permutation(caps.begin(), caps.end()));
107 } 108 }
108 } 109 }
109 110
110 } // namespace remoting 111 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/base/capabilities.cc ('k') | ui/gl/gl_implementation.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698