Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(526)

Side by Side Diff: content/common/indexed_db/indexed_db_key_unittest.cc

Issue 19752007: Use builders to convert between WebKit and content IDB types (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/common/indexed_db/indexed_db_key_range.cc ('k') | content/content_child.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <vector> 5 #include <vector>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/memory/scoped_vector.h" 8 #include "base/memory/scoped_vector.h"
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 #include "content/common/indexed_db/indexed_db_key.h" 10 #include "content/common/indexed_db/indexed_db_key.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 #include "third_party/WebKit/public/platform/WebIDBKey.h"
13
14 using WebKit::WebIDBKey;
15 using WebKit::WebVector;
16 12
17 namespace content { 13 namespace content {
18 14
19 namespace { 15 namespace {
20 16
21 TEST(IndexedDBKeyTest, KeySizeEstimates) { 17 TEST(IndexedDBKeyTest, KeySizeEstimates) {
22 std::vector<IndexedDBKey> keys; 18 std::vector<IndexedDBKey> keys;
23 std::vector<WebIDBKey> web_keys;
24 std::vector<size_t> estimates; 19 std::vector<size_t> estimates;
25 20
26 keys.push_back(IndexedDBKey()); 21 keys.push_back(IndexedDBKey());
27 web_keys.push_back(WebIDBKey::createInvalid());
28 estimates.push_back(static_cast<size_t>(16)); // Overhead. 22 estimates.push_back(static_cast<size_t>(16)); // Overhead.
29 23
30 keys.push_back(IndexedDBKey(WebKit::WebIDBKeyTypeNull)); 24 keys.push_back(IndexedDBKey(WebKit::WebIDBKeyTypeNull));
31 web_keys.push_back(WebIDBKey::createNull());
32 estimates.push_back(static_cast<size_t>(16)); 25 estimates.push_back(static_cast<size_t>(16));
33 26
34 double number = 3.14159; 27 double number = 3.14159;
35 keys.push_back(IndexedDBKey(number, WebKit::WebIDBKeyTypeNumber)); 28 keys.push_back(IndexedDBKey(number, WebKit::WebIDBKeyTypeNumber));
36 web_keys.push_back(WebIDBKey::createNumber(number));
37 estimates.push_back(static_cast<size_t>(24)); // Overhead + sizeof(double). 29 estimates.push_back(static_cast<size_t>(24)); // Overhead + sizeof(double).
38 30
39 double date = 1370884329.0; 31 double date = 1370884329.0;
40 keys.push_back(IndexedDBKey(date, WebKit::WebIDBKeyTypeDate)); 32 keys.push_back(IndexedDBKey(date, WebKit::WebIDBKeyTypeDate));
41 web_keys.push_back(WebIDBKey::createDate(date));
42 estimates.push_back(static_cast<size_t>(24)); // Overhead + sizeof(double). 33 estimates.push_back(static_cast<size_t>(24)); // Overhead + sizeof(double).
43 34
44 const string16 string(1024, static_cast<char16>('X')); 35 const string16 string(1024, static_cast<char16>('X'));
45 keys.push_back(IndexedDBKey(string)); 36 keys.push_back(IndexedDBKey(string));
46 web_keys.push_back(WebIDBKey::createString(string));
47 // Overhead + string length * sizeof(char16). 37 // Overhead + string length * sizeof(char16).
48 estimates.push_back(static_cast<size_t>(2064)); 38 estimates.push_back(static_cast<size_t>(2064));
49 39
50 const size_t array_size = 1024; 40 const size_t array_size = 1024;
51 IndexedDBKey::KeyArray array; 41 IndexedDBKey::KeyArray array;
52 WebVector<WebIDBKey> web_array(static_cast<size_t>(array_size));
53 double value = 123.456; 42 double value = 123.456;
54 for (size_t i = 0; i < array_size; ++i) { 43 for (size_t i = 0; i < array_size; ++i) {
55 array.push_back(IndexedDBKey(value, WebKit::WebIDBKeyTypeNumber)); 44 array.push_back(IndexedDBKey(value, WebKit::WebIDBKeyTypeNumber));
56 web_array[i] = WebIDBKey::createNumber(value);
57 } 45 }
58 keys.push_back(IndexedDBKey(array)); 46 keys.push_back(IndexedDBKey(array));
59 web_keys.push_back(WebIDBKey::createArray(array));
60 // Overhead + array length * (Overhead + sizeof(double)). 47 // Overhead + array length * (Overhead + sizeof(double)).
61 estimates.push_back(static_cast<size_t>(24592)); 48 estimates.push_back(static_cast<size_t>(24592));
62 49
63 ASSERT_EQ(keys.size(), web_keys.size());
64 ASSERT_EQ(keys.size(), estimates.size()); 50 ASSERT_EQ(keys.size(), estimates.size());
65 for (size_t i = 0; i < keys.size(); ++i) { 51 for (size_t i = 0; i < keys.size(); ++i) {
66 EXPECT_EQ(estimates[i], keys[i].size_estimate()); 52 EXPECT_EQ(estimates[i], keys[i].size_estimate());
67 EXPECT_EQ(estimates[i], IndexedDBKey(web_keys[i]).size_estimate());
68 } 53 }
69 } 54 }
70 55
71 } // namespace 56 } // namespace
72 57
73 } // namespace content 58 } // namespace content
OLDNEW
« no previous file with comments | « content/common/indexed_db/indexed_db_key_range.cc ('k') | content/content_child.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698