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)#include "chrome/test/chromedriver/chrome/status.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(StatusTest, Ok) {
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Status ok(kOk);
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(ok.IsOk());
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_FALSE(ok.IsError());
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_EQ(kOk, ok.code());
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_STREQ("ok", ok.message().c_str());
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(StatusTest, Error) {
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Status error(kUnknownCommand);
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_FALSE(error.IsOk());
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(error.IsError());
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_EQ(kUnknownCommand, error.code());
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_STREQ("unknown command", error.message().c_str());
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(StatusTest, ErrorWithDetails) {
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Status error(kUnknownError, "something happened");
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_FALSE(error.IsOk());
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(error.IsError());
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_EQ(kUnknownError, error.code());
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_STREQ("unknown error: something happened", error.message().c_str());
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(StatusTest, ErrorWithCause) {
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Status error(
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      kUnknownCommand, "quit",
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      Status(
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          kUnknownError, "something happened",
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          Status(kSessionNotCreatedException)));
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_FALSE(error.IsOk());
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(error.IsError());
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_EQ(kUnknownCommand, error.code());
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_STREQ(
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      "unknown command: quit\n"
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      "from unknown error: something happened\n"
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      "from session not created exception",
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      error.message().c_str());
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(StatusTest, AddDetails) {
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Status error(kUnknownError);
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  error.AddDetails("details");
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_STREQ("unknown error\n  (details)", error.message().c_str());
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
53