// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/test/webdriver/commands/log_command.h" #include "base/string_util.h" #include "base/values.h" #include "chrome/test/webdriver/commands/response.h" #include "chrome/test/webdriver/webdriver_error.h" #include "chrome/test/webdriver/webdriver_session.h" namespace webdriver { LogCommand::LogCommand( const std::vector<std::string>& path_segments, DictionaryValue* parameters) : WebDriverCommand(path_segments, parameters) { } LogCommand::~LogCommand() { } bool LogCommand::DoesPost() { return true; } void LogCommand::ExecutePost(Response* const response) { std::string type; if (!GetStringParameter("type", &type)) { response->SetError(new Error(kUnknownError, "Missing or invalid 'type'")); return; } LogType log_type; if (!LogType::FromString(type, &log_type)) { response->SetError(new Error(kUnknownError, "Unknown log type: " + type)); return; } if (log_type.type() == LogType::kDriver) { response->SetValue(session_->GetLog()); } else { response->SetError(new Error(kUnknownError, "Unrecognized type: " + type)); return; } } } // namespace webdriver