| Index: content/browser/indexed_db/indexed_db_leveldb_coding_unittest.cc
|
| diff --git a/content/browser/indexed_db/indexed_db_leveldb_coding_unittest.cc b/content/browser/indexed_db/indexed_db_leveldb_coding_unittest.cc
|
| index d159a81f93320a0590bee2fb60850bc30a06c576..0bd647cff3a360306986b87cc75019f281978bef 100644
|
| --- a/content/browser/indexed_db/indexed_db_leveldb_coding_unittest.cc
|
| +++ b/content/browser/indexed_db/indexed_db_leveldb_coding_unittest.cc
|
| @@ -691,6 +691,76 @@ TEST(IndexedDBLevelDBCodingTest, EncodeDecodeIDBKeyPath) {
|
| }
|
| }
|
|
|
| +TEST(IndexedDBLevelDBCodingTest, EncodeDecodeBlobJournal) {
|
| + std::vector<IndexedDBKeyPath> key_paths;
|
| + std::vector<std::string> encoded_paths;
|
| +
|
| + std::vector<BlobJournalType> journals;
|
| +
|
| + { // Empty journal
|
| + BlobJournalType journal;
|
| + journals.push_back(journal);
|
| + }
|
| +
|
| + { // One item
|
| + BlobJournalType journal;
|
| + journal.push_back(std::make_pair(4, 7));
|
| + journals.push_back(journal);
|
| + }
|
| +
|
| + { // kAllBlobsKey
|
| + BlobJournalType journal;
|
| + journal.push_back(std::make_pair(5, DatabaseMetaDataKey::kAllBlobsKey));
|
| + journals.push_back(journal);
|
| + }
|
| +
|
| + { // A bunch of items
|
| + BlobJournalType journal;
|
| + journal.push_back(std::make_pair(4, 7));
|
| + journal.push_back(std::make_pair(5, 6));
|
| + journal.push_back(std::make_pair(4, 5));
|
| + journal.push_back(std::make_pair(4, 4));
|
| + journal.push_back(std::make_pair(1, 12));
|
| + journal.push_back(std::make_pair(4, 3));
|
| + journal.push_back(std::make_pair(15, 14));
|
| + journals.push_back(journal);
|
| + }
|
| +
|
| + std::vector<BlobJournalType>::const_iterator journal_iter;
|
| + for (journal_iter = journals.begin(); journal_iter != journals.end();
|
| + ++journal_iter) {
|
| + std::string encoding;
|
| + EncodeBlobJournal(*journal_iter, &encoding);
|
| + StringPiece slice(encoding);
|
| + BlobJournalType journal_out;
|
| + EXPECT_TRUE(DecodeBlobJournal(&slice, &journal_out));
|
| + EXPECT_EQ(*journal_iter, journal_out);
|
| + }
|
| +
|
| + journals.clear();
|
| +
|
| + { // Illegal database id
|
| + BlobJournalType journal;
|
| + journal.push_back(std::make_pair(0, 3));
|
| + journals.push_back(journal);
|
| + }
|
| +
|
| + { // Illegal blob id
|
| + BlobJournalType journal;
|
| + journal.push_back(std::make_pair(4, 0));
|
| + journals.push_back(journal);
|
| + }
|
| +
|
| + for (journal_iter = journals.begin(); journal_iter != journals.end();
|
| + ++journal_iter) {
|
| + std::string encoding;
|
| + EncodeBlobJournal(*journal_iter, &encoding);
|
| + StringPiece slice(encoding);
|
| + BlobJournalType journal_out;
|
| + EXPECT_FALSE(DecodeBlobJournal(&slice, &journal_out));
|
| + }
|
| +}
|
| +
|
| TEST(IndexedDBLevelDBCodingTest, DecodeLegacyIDBKeyPath) {
|
| // Legacy encoding of string key paths.
|
| std::vector<IndexedDBKeyPath> key_paths;
|
|
|