Index: content/browser/indexed_db/idbbindingutilities_browsertest.cc |
diff --git a/content/browser/indexed_db/idbbindingutilities_browsertest.cc b/content/browser/indexed_db/idbbindingutilities_browsertest.cc |
index aeecf842ded013360ced0079164efd5550621bee..b83df41b31be98383bc2fd2c90f57e5afbde7f40 100644 |
--- a/content/browser/indexed_db/idbbindingutilities_browsertest.cc |
+++ b/content/browser/indexed_db/idbbindingutilities_browsertest.cc |
@@ -9,6 +9,7 @@ |
#include "content/browser/utility_process_host_impl.h" |
#include "content/public/browser/utility_process_host_client.h" |
#include "content/common/indexed_db/indexed_db_key.h" |
+#include "content/common/indexed_db/indexed_db_key_path.h" |
#include "content/common/utility_messages.h" |
#include "content/common/webkitplatformsupport_impl.h" |
#include "content/public/common/serialized_script_value.h" |
@@ -23,6 +24,7 @@ using content::BrowserThread; |
using content::UtilityProcessHost; |
using content::UtilityProcessHostClient; |
using WebKit::WebSerializedScriptValue; |
+using WebKit::WebIDBKeyPath; |
// Enables calling WebKit::shutdown no matter where a "return" happens. |
class ScopedShutdownWebKit { |
@@ -66,11 +68,10 @@ TEST(IDBKeyPathWithoutSandbox, Value) { |
WebSerializedScriptValue::fromString(string16())); |
std::vector<WebKit::WebIDBKey> values; |
- string16 key_path; |
- bool error; |
+ content::IndexedDBKeyPath key_path; |
- key_path = UTF8ToUTF16("foo"); |
- error = webkit_glue::IDBKeysFromValuesAndKeyPath( |
+ key_path.SetString(UTF8ToUTF16("foo")); |
+ webkit_glue::IDBKeysFromValuesAndKeyPath( |
serialized_values, key_path, &values); |
ASSERT_EQ(size_t(4), values.size()); |
@@ -79,11 +80,10 @@ TEST(IDBKeyPathWithoutSandbox, Value) { |
ASSERT_EQ(WebKit::WebIDBKey::InvalidType, values[1].type()); |
ASSERT_EQ(WebKit::WebIDBKey::NullType, values[2].type()); |
ASSERT_EQ(WebKit::WebIDBKey::NullType, values[3].type()); |
- ASSERT_FALSE(error); |
values.clear(); |
- key_path = UTF8ToUTF16("PropertyNotAvailable"); |
- error = webkit_glue::IDBKeysFromValuesAndKeyPath( |
+ key_path.SetString(UTF8ToUTF16("PropertyNotAvailable")); |
+ webkit_glue::IDBKeysFromValuesAndKeyPath( |
serialized_values, key_path, &values); |
ASSERT_EQ(size_t(4), values.size()); |
@@ -91,19 +91,10 @@ TEST(IDBKeyPathWithoutSandbox, Value) { |
ASSERT_EQ(WebKit::WebIDBKey::NullType, values[1].type()); |
ASSERT_EQ(WebKit::WebIDBKey::NullType, values[2].type()); |
ASSERT_EQ(WebKit::WebIDBKey::NullType, values[3].type()); |
- ASSERT_FALSE(error); |
values.clear(); |
- key_path = UTF8ToUTF16("!+Invalid[KeyPath[[["); |
- error = webkit_glue::IDBKeysFromValuesAndKeyPath( |
- serialized_values, key_path, &values); |
- |
- ASSERT_TRUE(error); |
- ASSERT_EQ(size_t(4), values.size()); |
- ASSERT_EQ(WebKit::WebIDBKey::NullType, values[0].type()); |
- ASSERT_EQ(WebKit::WebIDBKey::NullType, values[1].type()); |
- ASSERT_EQ(WebKit::WebIDBKey::NullType, values[2].type()); |
- ASSERT_EQ(WebKit::WebIDBKey::NullType, values[3].type()); |
+ key_path.SetString(UTF8ToUTF16("!+Invalid[KeyPath[[[")); |
+ ASSERT_FALSE(key_path.IsValid()); |
} |
class IDBKeyPathHelper : public UtilityProcessHostClient { |
@@ -158,7 +149,7 @@ class IDBKeyPathHelper : public UtilityProcessHostClient { |
void CheckValuesForKeyPath( |
int id, |
const std::vector<content::SerializedScriptValue>& serialized_values, |
- const string16& key_path) { |
+ const content::IndexedDBKeyPath& key_path) { |
if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { |
BrowserThread::PostTask( |
BrowserThread::IO, FROM_HERE, |
@@ -175,7 +166,7 @@ class IDBKeyPathHelper : public UtilityProcessHostClient { |
void CheckInjectValue(const IndexedDBKey& key, |
const content::SerializedScriptValue& value, |
- const string16& key_path) { |
+ const content::IndexedDBKeyPath& key_path) { |
if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { |
BrowserThread::PostTask( |
BrowserThread::IO, FROM_HERE, |
@@ -196,8 +187,6 @@ class IDBKeyPathHelper : public UtilityProcessHostClient { |
IPC_BEGIN_MESSAGE_MAP_EX(IDBKeyPathHelper, message, msg_is_ok) |
IPC_MESSAGE_HANDLER(UtilityHostMsg_IDBKeysFromValuesAndKeyPath_Succeeded, |
OnIDBKeysFromValuesAndKeyPathSucceeded) |
- IPC_MESSAGE_HANDLER(UtilityHostMsg_IDBKeysFromValuesAndKeyPath_Failed, |
- OnIDBKeysFromValuesAndKeyPathFailed) |
IPC_MESSAGE_HANDLER(UtilityHostMsg_InjectIDBKey_Finished, |
OnInjectIDBKeyFinished) |
IPC_MESSAGE_UNHANDLED(handled = false) |
@@ -278,7 +267,7 @@ class ScopedIDBKeyPathHelper { |
int id, |
const std::vector<content::SerializedScriptValue>& |
serialized_script_values, |
- const string16& key_path) { |
+ const content::IndexedDBKeyPath& key_path) { |
key_path_helper_->CheckValuesForKeyPath(id, serialized_script_values, |
key_path); |
ui_test_utils::RunMessageLoop(); |
@@ -286,7 +275,7 @@ class ScopedIDBKeyPathHelper { |
void CheckInjectValue(const IndexedDBKey& key, |
const content::SerializedScriptValue& value, |
- const string16& key_path) { |
+ const content::IndexedDBKeyPath& key_path) { |
key_path_helper_->CheckInjectValue(key, value, key_path); |
ui_test_utils::RunMessageLoop(); |
} |
@@ -333,8 +322,11 @@ IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, IDBKeyPathExtract) { |
expected_keys.push_back(null_key); |
scoped_helper.SetExpectedKeys(kId, expected_keys, false); |
+ |
+ content::IndexedDBKeyPath key_path; |
+ key_path.SetString(UTF8ToUTF16("foo")); |
scoped_helper.CheckValuesForKeyPath( |
- kId, serialized_values, UTF8ToUTF16("foo")); |
+ kId, serialized_values, key_path); |
} |
IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, IDBKeyPathPropertyNotAvailable) { |
@@ -359,8 +351,9 @@ IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, IDBKeyPathPropertyNotAvailable) { |
serialized_values.push_back( |
content::SerializedScriptValue(true, false, string16())); |
- scoped_helper.CheckValuesForKeyPath(kId, serialized_values, |
- UTF8ToUTF16("PropertyNotAvailable")); |
+ content::IndexedDBKeyPath key_path; |
+ key_path.SetString(UTF8ToUTF16("PropertyNotAvailable")); |
+ scoped_helper.CheckValuesForKeyPath(kId, serialized_values, key_path); |
} |
IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, IDBKeyPathMultipleCalls) { |
@@ -372,7 +365,7 @@ IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, IDBKeyPathMultipleCalls) { |
null_value.SetNull(); |
expected_keys.push_back(null_value); |
expected_keys.push_back(null_value); |
- scoped_helper.SetExpectedKeys(kId, expected_keys, true); |
+ scoped_helper.SetExpectedKeys(kId, expected_keys, false); |
std::vector<content::SerializedScriptValue> serialized_values; |
@@ -386,8 +379,9 @@ IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, IDBKeyPathMultipleCalls) { |
serialized_values.push_back( |
content::SerializedScriptValue(true, false, string16())); |
- scoped_helper.CheckValuesForKeyPath(kId, serialized_values, |
- UTF8ToUTF16("!+Invalid[KeyPath[[[")); |
+ content::IndexedDBKeyPath key_path; |
+ key_path.SetString(UTF8ToUTF16("PropertyNotAvailable")); |
+ scoped_helper.CheckValuesForKeyPath(kId, serialized_values, key_path); |
// Call again with the Utility process in batch mode and with valid keys. |
expected_keys.clear(); |
@@ -396,8 +390,8 @@ IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, IDBKeyPathMultipleCalls) { |
expected_keys.push_back(value); |
expected_keys.push_back(null_value); |
scoped_helper.SetExpectedKeys(kId + 1, expected_keys, false); |
- scoped_helper.CheckValuesForKeyPath(kId + 1, serialized_values, |
- UTF8ToUTF16("foo")); |
+ key_path.SetString(UTF8ToUTF16("foo")); |
+ scoped_helper.CheckValuesForKeyPath(kId + 1, serialized_values, key_path); |
} |
IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, InjectIDBKey) { |
@@ -418,12 +412,15 @@ IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, InjectIDBKey) { |
content::SerializedScriptValue expected_value( |
false, false, string16(expected_data, arraysize(expected_data))); |
scoped_helper.SetExpectedValue(expected_value); |
- scoped_helper.CheckInjectValue(key, value, UTF8ToUTF16("bar")); |
+ content::IndexedDBKeyPath key_path; |
+ key_path.SetString(UTF8ToUTF16("bar")); |
+ scoped_helper.CheckInjectValue(key, value, key_path); |
// Should fail - can't apply properties to string value of key foo |
const content::SerializedScriptValue failure_value; |
scoped_helper.SetExpectedValue(failure_value); |
- scoped_helper.CheckInjectValue(key, value, UTF8ToUTF16("foo.bad.path")); |
+ key_path.SetString(UTF8ToUTF16("foo.bad.path")); |
+ scoped_helper.CheckInjectValue(key, value, key_path); |
// {foo: 'zoo', bar: {baz: 'myNewKey'}} |
const char16 expected_data2[] = {0x01ff, 0x003f, 0x3f6f, 0x5301, 0x6603, |
@@ -435,5 +432,6 @@ IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, InjectIDBKey) { |
content::SerializedScriptValue expected_value2( |
false, false, string16(expected_data2, arraysize(expected_data2))); |
scoped_helper.SetExpectedValue(expected_value2); |
- scoped_helper.CheckInjectValue(key, value, UTF8ToUTF16("bar.baz")); |
+ key_path.SetString(UTF8ToUTF16("bar.baz")); |
+ scoped_helper.CheckInjectValue(key, value, key_path); |
} |