tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }