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/chromedriver/chrome/status.h"
6#include "testing/gtest/include/gtest/gtest.h"
7
8TEST(StatusTest, Ok) {
9  Status ok(kOk);
10  ASSERT_TRUE(ok.IsOk());
11  ASSERT_FALSE(ok.IsError());
12  ASSERT_EQ(kOk, ok.code());
13  ASSERT_STREQ("ok", ok.message().c_str());
14}
15
16TEST(StatusTest, Error) {
17  Status error(kUnknownCommand);
18  ASSERT_FALSE(error.IsOk());
19  ASSERT_TRUE(error.IsError());
20  ASSERT_EQ(kUnknownCommand, error.code());
21  ASSERT_STREQ("unknown command", error.message().c_str());
22}
23
24TEST(StatusTest, ErrorWithDetails) {
25  Status error(kUnknownError, "something happened");
26  ASSERT_FALSE(error.IsOk());
27  ASSERT_TRUE(error.IsError());
28  ASSERT_EQ(kUnknownError, error.code());
29  ASSERT_STREQ("unknown error: something happened", error.message().c_str());
30}
31
32TEST(StatusTest, ErrorWithCause) {
33  Status error(
34      kUnknownCommand, "quit",
35      Status(
36          kUnknownError, "something happened",
37          Status(kSessionNotCreatedException)));
38  ASSERT_FALSE(error.IsOk());
39  ASSERT_TRUE(error.IsError());
40  ASSERT_EQ(kUnknownCommand, error.code());
41  ASSERT_STREQ(
42      "unknown command: quit\n"
43      "from unknown error: something happened\n"
44      "from session not created exception",
45      error.message().c_str());
46}
47
48TEST(StatusTest, AddDetails) {
49  Status error(kUnknownError);
50  error.AddDetails("details");
51  ASSERT_STREQ("unknown error\n  (details)", error.message().c_str());
52}
53