OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/json/json_writer.h" | 7 #include "base/json/json_writer.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "chrome/test/chromedriver/chrome/status.h" | 10 #include "chrome/test/chromedriver/chrome/status.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 HttpResponse response; | 49 HttpResponse response; |
50 handler.Handle(request, &response); | 50 handler.Handle(request, &response); |
51 ASSERT_EQ(HttpResponse::kBadRequest, response.status()); | 51 ASSERT_EQ(HttpResponse::kBadRequest, response.status()); |
52 } | 52 } |
53 | 53 |
54 TEST(HttpHandlerTest, HandleUnknownCommand) { | 54 TEST(HttpHandlerTest, HandleUnknownCommand) { |
55 HttpHandler handler( | 55 HttpHandler handler( |
56 scoped_ptr<CommandExecutor>(new DummyExecutor()), | 56 scoped_ptr<CommandExecutor>(new DummyExecutor()), |
57 scoped_ptr<HttpHandler::CommandMap>(new HttpHandler::CommandMap()), | 57 scoped_ptr<HttpHandler::CommandMap>(new HttpHandler::CommandMap()), |
58 "/"); | 58 "/"); |
59 HttpRequest request(kGet, "/path", ""); | 59 HttpRequest request(kGet, "/path", std::string()); |
60 HttpResponse response; | 60 HttpResponse response; |
61 handler.Handle(request, &response); | 61 handler.Handle(request, &response); |
62 ASSERT_EQ(HttpResponse::kNotFound, response.status()); | 62 ASSERT_EQ(HttpResponse::kNotFound, response.status()); |
63 } | 63 } |
64 | 64 |
65 TEST(HttpHandlerTest, HandleNewSession) { | 65 TEST(HttpHandlerTest, HandleNewSession) { |
66 scoped_ptr<HttpHandler::CommandMap> map(new HttpHandler::CommandMap()); | 66 scoped_ptr<HttpHandler::CommandMap> map(new HttpHandler::CommandMap()); |
67 map->push_back(CommandMapping(kPost, "session", CommandNames::kNewSession)); | 67 map->push_back(CommandMapping(kPost, "session", CommandNames::kNewSession)); |
68 HttpHandler handler( | 68 HttpHandler handler( |
69 scoped_ptr<CommandExecutor>(new DummyExecutor()), | 69 scoped_ptr<CommandExecutor>(new DummyExecutor()), |
70 map.Pass(), "/base/"); | 70 map.Pass(), "/base/"); |
71 HttpRequest request(kPost, "/base/session", ""); | 71 HttpRequest request(kPost, "/base/session", std::string()); |
72 HttpResponse response; | 72 HttpResponse response; |
73 handler.Handle(request, &response); | 73 handler.Handle(request, &response); |
74 ASSERT_EQ(HttpResponse::kSeeOther, response.status()); | 74 ASSERT_EQ(HttpResponse::kSeeOther, response.status()); |
75 std::string location; | 75 std::string location; |
76 ASSERT_TRUE(response.GetHeader("Location", &location)); | 76 ASSERT_TRUE(response.GetHeader("Location", &location)); |
77 std::string prefix = "/base/session/"; | 77 std::string prefix = "/base/session/"; |
78 ASSERT_EQ(prefix, location.substr(0, prefix.length())); | 78 ASSERT_EQ(prefix, location.substr(0, prefix.length())); |
79 } | 79 } |
80 | 80 |
81 TEST(HttpHandlerTest, HandleInvalidPost) { | 81 TEST(HttpHandlerTest, HandleInvalidPost) { |
82 scoped_ptr<HttpHandler::CommandMap> map(new HttpHandler::CommandMap()); | 82 scoped_ptr<HttpHandler::CommandMap> map(new HttpHandler::CommandMap()); |
83 map->push_back(CommandMapping(kPost, "path", "cmd")); | 83 map->push_back(CommandMapping(kPost, "path", "cmd")); |
84 HttpHandler handler( | 84 HttpHandler handler( |
85 scoped_ptr<CommandExecutor>(new DummyExecutor()), | 85 scoped_ptr<CommandExecutor>(new DummyExecutor()), |
86 map.Pass(), "/"); | 86 map.Pass(), "/"); |
87 HttpRequest request(kPost, "/path", "should be a dictionary"); | 87 HttpRequest request(kPost, "/path", "should be a dictionary"); |
88 HttpResponse response; | 88 HttpResponse response; |
89 handler.Handle(request, &response); | 89 handler.Handle(request, &response); |
90 ASSERT_EQ(HttpResponse::kBadRequest, response.status()); | 90 ASSERT_EQ(HttpResponse::kBadRequest, response.status()); |
91 } | 91 } |
92 | 92 |
93 TEST(HttpHandlerTest, HandleUnimplementedCommand) { | 93 TEST(HttpHandlerTest, HandleUnimplementedCommand) { |
94 scoped_ptr<HttpHandler::CommandMap> map(new HttpHandler::CommandMap()); | 94 scoped_ptr<HttpHandler::CommandMap> map(new HttpHandler::CommandMap()); |
95 map->push_back(CommandMapping(kPost, "path", "cmd")); | 95 map->push_back(CommandMapping(kPost, "path", "cmd")); |
96 HttpHandler handler( | 96 HttpHandler handler( |
97 scoped_ptr<CommandExecutor>(new DummyExecutor(kUnknownCommand)), | 97 scoped_ptr<CommandExecutor>(new DummyExecutor(kUnknownCommand)), |
98 map.Pass(), "/"); | 98 map.Pass(), "/"); |
99 HttpRequest request(kPost, "/path", ""); | 99 HttpRequest request(kPost, "/path", std::string()); |
100 HttpResponse response; | 100 HttpResponse response; |
101 handler.Handle(request, &response); | 101 handler.Handle(request, &response); |
102 ASSERT_EQ(HttpResponse::kNotImplemented, response.status()); | 102 ASSERT_EQ(HttpResponse::kNotImplemented, response.status()); |
103 } | 103 } |
104 | 104 |
105 TEST(HttpHandlerTest, HandleCommand) { | 105 TEST(HttpHandlerTest, HandleCommand) { |
106 scoped_ptr<HttpHandler::CommandMap> map(new HttpHandler::CommandMap()); | 106 scoped_ptr<HttpHandler::CommandMap> map(new HttpHandler::CommandMap()); |
107 map->push_back(CommandMapping(kPost, "path", "cmd")); | 107 map->push_back(CommandMapping(kPost, "path", "cmd")); |
108 HttpHandler handler( | 108 HttpHandler handler( |
109 scoped_ptr<CommandExecutor>(new DummyExecutor()), | 109 scoped_ptr<CommandExecutor>(new DummyExecutor()), |
110 map.Pass(), "/"); | 110 map.Pass(), "/"); |
111 HttpRequest request(kPost, "/path", ""); | 111 HttpRequest request(kPost, "/path", std::string()); |
112 HttpResponse response; | 112 HttpResponse response; |
113 handler.Handle(request, &response); | 113 handler.Handle(request, &response); |
114 ASSERT_EQ(HttpResponse::kOk, response.status()); | 114 ASSERT_EQ(HttpResponse::kOk, response.status()); |
115 std::string mime; | 115 std::string mime; |
116 ASSERT_TRUE(response.GetHeader("Content-Type", &mime)); | 116 ASSERT_TRUE(response.GetHeader("Content-Type", &mime)); |
117 base::DictionaryValue body; | 117 base::DictionaryValue body; |
118 body.SetInteger("status", kOk); | 118 body.SetInteger("status", kOk); |
119 body.SetInteger("value", 1); | 119 body.SetInteger("value", 1); |
120 body.SetString("sessionId", "session_id"); | 120 body.SetString("sessionId", "session_id"); |
121 std::string json; | 121 std::string json; |
(...skipping 11 matching lines...) Expand all Loading... |
133 ASSERT_EQ(0u, params.size()); | 133 ASSERT_EQ(0u, params.size()); |
134 } | 134 } |
135 | 135 |
136 TEST(MatchesCommandTest, DiffPathLength) { | 136 TEST(MatchesCommandTest, DiffPathLength) { |
137 CommandMapping command(kPost, "path/path", "command"); | 137 CommandMapping command(kPost, "path/path", "command"); |
138 std::string session_id; | 138 std::string session_id; |
139 base::DictionaryValue params; | 139 base::DictionaryValue params; |
140 ASSERT_FALSE(internal::MatchesCommand( | 140 ASSERT_FALSE(internal::MatchesCommand( |
141 kPost, "path", command, &session_id, ¶ms)); | 141 kPost, "path", command, &session_id, ¶ms)); |
142 ASSERT_FALSE(internal::MatchesCommand( | 142 ASSERT_FALSE(internal::MatchesCommand( |
143 kPost, "", command, &session_id, ¶ms)); | 143 kPost, std::string(), command, &session_id, ¶ms)); |
144 ASSERT_FALSE(internal::MatchesCommand( | 144 ASSERT_FALSE( |
145 kPost, "/", command, &session_id, ¶ms)); | 145 internal::MatchesCommand(kPost, "/", command, &session_id, ¶ms)); |
146 ASSERT_FALSE(internal::MatchesCommand( | 146 ASSERT_FALSE(internal::MatchesCommand( |
147 kPost, "path/path/path", command, &session_id, ¶ms)); | 147 kPost, "path/path/path", command, &session_id, ¶ms)); |
148 } | 148 } |
149 | 149 |
150 TEST(MatchesCommandTest, DiffPaths) { | 150 TEST(MatchesCommandTest, DiffPaths) { |
151 CommandMapping command(kPost, "path/apath", "command"); | 151 CommandMapping command(kPost, "path/apath", "command"); |
152 std::string session_id; | 152 std::string session_id; |
153 base::DictionaryValue params; | 153 base::DictionaryValue params; |
154 ASSERT_FALSE(internal::MatchesCommand( | 154 ASSERT_FALSE(internal::MatchesCommand( |
155 kPost, "path/bpath", command, &session_id, ¶ms)); | 155 kPost, "path/bpath", command, &session_id, ¶ms)); |
156 } | 156 } |
157 | 157 |
158 TEST(MatchesCommandTest, Substitution) { | 158 TEST(MatchesCommandTest, Substitution) { |
159 CommandMapping command(kPost, "path/:sessionId/space/:a/:b", "command"); | 159 CommandMapping command(kPost, "path/:sessionId/space/:a/:b", "command"); |
160 std::string session_id; | 160 std::string session_id; |
161 base::DictionaryValue params; | 161 base::DictionaryValue params; |
162 ASSERT_TRUE(internal::MatchesCommand( | 162 ASSERT_TRUE(internal::MatchesCommand( |
163 kPost, "path/1/space/2/3", command, &session_id, ¶ms)); | 163 kPost, "path/1/space/2/3", command, &session_id, ¶ms)); |
164 ASSERT_EQ("1", session_id); | 164 ASSERT_EQ("1", session_id); |
165 ASSERT_EQ(2u, params.size()); | 165 ASSERT_EQ(2u, params.size()); |
166 std::string param; | 166 std::string param; |
167 ASSERT_TRUE(params.GetString("a", ¶m)); | 167 ASSERT_TRUE(params.GetString("a", ¶m)); |
168 ASSERT_EQ("2", param); | 168 ASSERT_EQ("2", param); |
169 ASSERT_TRUE(params.GetString("b", ¶m)); | 169 ASSERT_TRUE(params.GetString("b", ¶m)); |
170 ASSERT_EQ("3", param); | 170 ASSERT_EQ("3", param); |
171 } | 171 } |
OLD | NEW |