TestIDBResult.cpp (1240B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 #include "IDBResult.h" 6 #include "gtest/gtest.h" 7 8 using mozilla::ErrorResult; 9 using namespace mozilla::dom::indexedDB; 10 11 TEST(IDBResultTest, ConstructWithValue) 12 { 13 IDBResult<int, IDBSpecialValue::Failure> result(0); 14 EXPECT_FALSE(result.isErr() && 15 result.inspectErr().Is(SpecialValues::Failure)); 16 EXPECT_TRUE(result.isOk()); 17 EXPECT_EQ(result.unwrap(), 0); 18 } 19 20 TEST(IDBResultTest, Expand) 21 { 22 IDBResult<int, IDBSpecialValue::Failure> narrow{ 23 mozilla::Err(SpecialValues::Failure)}; 24 IDBResult<int, IDBSpecialValue::Failure, IDBSpecialValue::Invalid> wide{ 25 narrow.propagateErr()}; 26 EXPECT_TRUE(wide.isErr() && wide.inspectErr().Is(SpecialValues::Failure)); 27 } 28 29 IDBResult<int, IDBSpecialValue::Failure> ThrowException() { 30 return mozilla::Err(IDBException(NS_ERROR_FAILURE)); 31 } 32 33 TEST(IDBResultTest, ThrowException) 34 { 35 auto result = ThrowException(); 36 EXPECT_TRUE(result.isErr() && 37 result.inspectErr().Is(SpecialValues::Exception)); 38 result.unwrapErr().AsException().SuppressException(); 39 }