blob: 39633152c70e3387d2ea5d1441564c8de0c2f7c8 [file] [log] [blame]
Alex Vakulenkob3aac252014-05-07 17:35:24 -07001// Copyright 2014 The Chromium OS 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 <gtest/gtest.h>
6#include <base/files/file_path.h>
7
8#include "buffet/error.h"
9
10using chromeos::Error;
11
12namespace {
13
14chromeos::ErrorPtr GenerateNetworkError() {
15 return Error::Create("network", "not_found", "Resource not found");
16}
17
18chromeos::ErrorPtr GenerateHttpError() {
19 auto inner = GenerateNetworkError();
20 return Error::Create("HTTP", "404", "Not found", std::move(inner));
21}
22
23} // namespace
24
25TEST(Error, Single) {
26 auto err = GenerateNetworkError();
27 EXPECT_EQ("network", err->GetDomain());
28 EXPECT_EQ("not_found", err->GetCode());
29 EXPECT_EQ("Resource not found", err->GetMessage());
30 EXPECT_EQ(nullptr, err->GetInnerError());
31 EXPECT_TRUE(err->HasDomain("network"));
32 EXPECT_FALSE(err->HasDomain("HTTP"));
33 EXPECT_FALSE(err->HasDomain("foo"));
34 EXPECT_TRUE(err->HasError("network", "not_found"));
35 EXPECT_FALSE(err->HasError("network", "404"));
36 EXPECT_FALSE(err->HasError("HTTP", "404"));
37 EXPECT_FALSE(err->HasError("HTTP", "not_found"));
38 EXPECT_FALSE(err->HasError("foo", "bar"));
39}
40
41TEST(Error, Nested) {
42 auto err = GenerateHttpError();
43 EXPECT_EQ("HTTP", err->GetDomain());
44 EXPECT_EQ("404", err->GetCode());
45 EXPECT_EQ("Not found", err->GetMessage());
46 EXPECT_NE(nullptr, err->GetInnerError());
47 EXPECT_EQ("network", err->GetInnerError()->GetDomain());
48 EXPECT_TRUE(err->HasDomain("network"));
49 EXPECT_TRUE(err->HasDomain("HTTP"));
50 EXPECT_FALSE(err->HasDomain("foo"));
51 EXPECT_TRUE(err->HasError("network", "not_found"));
52 EXPECT_FALSE(err->HasError("network", "404"));
53 EXPECT_TRUE(err->HasError("HTTP", "404"));
54 EXPECT_FALSE(err->HasError("HTTP", "not_found"));
55 EXPECT_FALSE(err->HasError("foo", "bar"));
56}