- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / chromedriver / chrome / status.h
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 #ifndef CHROME_TEST_CHROMEDRIVER_CHROME_STATUS_H_
6 #define CHROME_TEST_CHROMEDRIVER_CHROME_STATUS_H_
7
8 #include <string>
9
10 // WebDriver standard status codes.
11 enum StatusCode {
12   kOk = 0,
13   kNoSuchSession = 6,
14   kNoSuchElement = 7,
15   kNoSuchFrame = 8,
16   kUnknownCommand = 9,
17   kStaleElementReference = 10,
18   kElementNotVisible = 11,
19   kInvalidElementState = 12,
20   kUnknownError = 13,
21   kJavaScriptError = 17,
22   kXPathLookupError = 19,
23   kTimeout = 21,
24   kNoSuchWindow = 23,
25   kInvalidCookieDomain = 24,
26   kUnexpectedAlertOpen = 26,
27   kNoAlertOpen = 27,
28   kScriptTimeout = 28,
29   kInvalidSelector = 32,
30   kSessionNotCreatedException = 33,
31   // Chrome-specific status codes.
32   kChromeNotReachable = 100,
33   kNoSuchExecutionContext,
34   kDisconnected,
35   kForbidden = 103,
36   kTabCrashed,
37 };
38
39 // Represents a WebDriver status, which may be an error or ok.
40 class Status {
41  public:
42   explicit Status(StatusCode code);
43   Status(StatusCode code, const std::string& details);
44   Status(StatusCode code, const Status& cause);
45   Status(StatusCode code, const std::string& details, const Status& cause);
46   ~Status();
47
48   void AddDetails(const std::string& details);
49
50   bool IsOk() const;
51   bool IsError() const;
52
53   StatusCode code() const;
54
55   const std::string& message() const;
56
57  private:
58   StatusCode code_;
59   std::string msg_;
60 };
61
62 #endif  // CHROME_TEST_CHROMEDRIVER_CHROME_STATUS_H_