12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CHROME_TEST_CHROMEDRIVER_CHROME_STATUS_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_TEST_CHROMEDRIVER_CHROME_STATUS_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string> 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// WebDriver standard status codes. 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)enum StatusCode { 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kOk = 0, 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) kNoSuchSession = 6, 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kNoSuchElement = 7, 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) kNoSuchFrame = 8, 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kUnknownCommand = 9, 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kStaleElementReference = 10, 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kElementNotVisible = 11, 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kInvalidElementState = 12, 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kUnknownError = 13, 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kJavaScriptError = 17, 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kXPathLookupError = 19, 23868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) kTimeout = 21, 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kNoSuchWindow = 23, 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kInvalidCookieDomain = 24, 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kUnexpectedAlertOpen = 26, 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kNoAlertOpen = 27, 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kScriptTimeout = 28, 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kInvalidSelector = 32, 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kSessionNotCreatedException = 33, 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Chrome-specific status codes. 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) kChromeNotReachable = 100, 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) kNoSuchExecutionContext, 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kDisconnected, 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) kForbidden = 103, 3668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) kTabCrashed, 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Represents a WebDriver status, which may be an error or ok. 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class Status { 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) explicit Status(StatusCode code); 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Status(StatusCode code, const std::string& details); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Status(StatusCode code, const Status& cause); 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Status(StatusCode code, const std::string& details, const Status& cause); 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ~Status(); 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void AddDetails(const std::string& details); 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool IsOk() const; 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool IsError() const; 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) StatusCode code() const; 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& message() const; 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) StatusCode code_; 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string msg_; 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CHROME_TEST_CHROMEDRIVER_CHROME_STATUS_H_ 63