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

Side by Side Diff: chrome/test/webdriver/commands/response.cc

Issue 23526047: Delete old chromedriver code, and remove mongoose webserver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 3 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
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 "chrome/test/webdriver/commands/response.h"
6
7 #include "base/base64.h"
8 #include "base/json/json_writer.h"
9 #include "base/logging.h"
10 #include "base/values.h"
11
12 using base::DictionaryValue;
13 using base::Value;
14
15 namespace webdriver {
16
17 namespace {
18
19 // Error message taken from:
20 // http://code.google.com/p/selenium/wiki/JsonWireProtocol#Response_Status_Codes
21 const char kStatusKey[] = "status";
22 const char kValueKey[] = "value";
23 const char kMessageKey[] = "message";
24
25 } // namespace
26
27 Response::Response() {
28 SetStatus(kSuccess);
29 SetValue(new DictionaryValue());
30 }
31
32 Response::~Response() {}
33
34 ErrorCode Response::GetStatus() const {
35 int status;
36 if (!data_.GetInteger(kStatusKey, &status))
37 NOTREACHED();
38 return static_cast<ErrorCode>(status);
39 }
40
41 void Response::SetStatus(ErrorCode status) {
42 data_.SetInteger(kStatusKey, status);
43 }
44
45 const Value* Response::GetValue() const {
46 const Value* out = NULL;
47 data_.Get(kValueKey, &out);
48 return out;
49 }
50
51 void Response::SetValue(Value* value) {
52 data_.Set(kValueKey, value);
53 }
54
55 void Response::SetError(Error* error) {
56 DictionaryValue* error_dict = new DictionaryValue();
57 error_dict->SetString(kMessageKey, error->details());
58
59 SetStatus(error->code());
60 SetValue(error_dict);
61 delete error;
62 }
63
64 void Response::SetField(const std::string& key, Value* value) {
65 data_.Set(key, value);
66 }
67
68 const Value* Response::GetDictionary() const {
69 return &data_;
70 }
71
72 std::string Response::ToJSON() const {
73 std::string json;
74 // The |Value| classes do not support int64 and in rare cases we need to
75 // return one. We do this by using a double and passing in the special
76 // option so that the JSONWriter doesn't add '.0' to the end and confuse
77 // the WebDriver client.
78 base::JSONWriter::WriteWithOptions(
79 &data_, base::JSONWriter::OPTIONS_OMIT_DOUBLE_TYPE_PRESERVATION, &json);
80 return json;
81 }
82
83 } // namespace webdriver
OLDNEW
« no previous file with comments | « chrome/test/webdriver/commands/response.h ('k') | chrome/test/webdriver/commands/screenshot_command.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698