blob: c00ac488ea47ff4ef736eef78eb55245f1b687c0 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/indexed_db/scopes/scopes_lock_manager.h"
#include <vector>
#include "base/bind.h"
#include "base/test/bind_test_util.h"
#include "content/browser/indexed_db/indexed_db_leveldb_coding.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
namespace {
TEST(ScopesLockManager, TestRangePopulation) {
ScopeLockRange range = {"1", "2"};
EXPECT_EQ("1", range.begin);
EXPECT_EQ("2", range.end);
EXPECT_TRUE(range.IsValid());
}
TEST(ScopesLockManager, TestInvalidRange) {
ScopeLockRange range = {"2", "1"};
EXPECT_FALSE(range.IsValid());
range = {"2", "2"};
EXPECT_FALSE(range.IsValid());
}
TEST(ScopesLockManager, TestRangeDifferences) {
ScopeLockRange range_db1;
ScopeLockRange range_db2;
ScopeLockRange range_db1_os1;
ScopeLockRange range_db1_os2;
for (int64_t i = 0; i < 512; ++i) {
range_db1 = GetDatabaseLockRange(i);
range_db2 = GetDatabaseLockRange(i + 1);
range_db1_os1 = GetObjectStoreLockRange(i, i);
range_db1_os2 = GetObjectStoreLockRange(i, i + 1);
EXPECT_TRUE(range_db1.IsValid() && range_db2.IsValid() &&
range_db1_os1.IsValid() && range_db1_os2.IsValid());
EXPECT_LT(range_db1, range_db2);
EXPECT_LT(range_db1, range_db1_os1);
EXPECT_LT(range_db1, range_db1_os2);
EXPECT_LT(range_db1_os1, range_db1_os2);
EXPECT_LT(range_db1_os1, range_db2);
EXPECT_LT(range_db1_os2, range_db2);
}
}
} // namespace
} // namespace content