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 8 TEST(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 16 TEST(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 24 TEST(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 32 TEST(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 48 TEST(StatusTest, AddDetails) { 49 Status error(kUnknownError); 50 error.AddDetails("details"); 51 ASSERT_STREQ("unknown error\n (details)", error.message().c_str()); 52 } 53