| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 24 */ | 24 */ |
| 25 | 25 |
| 26 #include "config.h" | 26 #include "config.h" |
| 27 #include "bindings/modules/v8/V8BindingForModules.h" | 27 #include "bindings/modules/v8/V8BindingForModules.h" |
| 28 | 28 |
| 29 #include "bindings/core/v8/V8Binding.h" | 29 #include "bindings/core/v8/V8Binding.h" |
| 30 #include "bindings/core/v8/V8PerIsolateData.h" | 30 #include "bindings/core/v8/V8PerIsolateData.h" |
| 31 #include "bindings/modules/v8/ToV8ForModules.h" |
| 31 #include "modules/indexeddb/IDBKey.h" | 32 #include "modules/indexeddb/IDBKey.h" |
| 32 #include "modules/indexeddb/IDBKeyPath.h" | 33 #include "modules/indexeddb/IDBKeyPath.h" |
| 33 #include <gtest/gtest.h> | 34 #include <gtest/gtest.h> |
| 34 | 35 |
| 35 using namespace blink; | 36 using namespace blink; |
| 36 | 37 |
| 37 namespace { | 38 namespace { |
| 38 | 39 |
| 39 IDBKey* checkKeyFromValueAndKeyPathInternal(v8::Isolate* isolate, const ScriptVa
lue& value, const String& keyPath) | 40 IDBKey* checkKeyFromValueAndKeyPathInternal(v8::Isolate* isolate, const ScriptVa
lue& value, const String& keyPath) |
| 40 { | 41 { |
| 41 IDBKeyPath idbKeyPath(keyPath); | 42 IDBKeyPath idbKeyPath(keyPath); |
| 42 EXPECT_TRUE(idbKeyPath.isValid()); | 43 EXPECT_TRUE(idbKeyPath.isValid()); |
| 43 | 44 |
| 44 return createIDBKeyFromScriptValueAndKeyPath(isolate, value, idbKeyPath); | 45 return createIDBKeyFromScriptValueAndKeyPath(isolate, value, idbKeyPath); |
| 45 } | 46 } |
| 46 | 47 |
| 47 void checkKeyPathNullValue(v8::Isolate* isolate, const ScriptValue& value, const
String& keyPath) | 48 void checkKeyPathNullValue(v8::Isolate* isolate, const ScriptValue& value, const
String& keyPath) |
| 48 { | 49 { |
| 49 ASSERT_FALSE(checkKeyFromValueAndKeyPathInternal(isolate, value, keyPath)); | 50 ASSERT_FALSE(checkKeyFromValueAndKeyPathInternal(isolate, value, keyPath)); |
| 50 } | 51 } |
| 51 | 52 |
| 52 bool injectKey(ScriptState* scriptState, IDBKey* key, ScriptValue& value, const
String& keyPath) | 53 bool injectKey(ScriptState* scriptState, IDBKey* key, ScriptValue& value, const
String& keyPath) |
| 53 { | 54 { |
| 54 IDBKeyPath idbKeyPath(keyPath); | 55 IDBKeyPath idbKeyPath(keyPath); |
| 55 EXPECT_TRUE(idbKeyPath.isValid()); | 56 EXPECT_TRUE(idbKeyPath.isValid()); |
| 56 ScriptValue keyValue = idbKeyToScriptValue(scriptState, key); | 57 ScriptValue keyValue = ScriptValue::from(scriptState, key); |
| 57 return injectV8KeyIntoV8Value(scriptState->isolate(), keyValue.v8Value(), va
lue.v8Value(), idbKeyPath); | 58 return injectV8KeyIntoV8Value(scriptState->isolate(), keyValue.v8Value(), va
lue.v8Value(), idbKeyPath); |
| 58 } | 59 } |
| 59 | 60 |
| 60 void checkInjection(ScriptState* scriptState, IDBKey* key, ScriptValue& value, c
onst String& keyPath) | 61 void checkInjection(ScriptState* scriptState, IDBKey* key, ScriptValue& value, c
onst String& keyPath) |
| 61 { | 62 { |
| 62 bool result = injectKey(scriptState, key, value, keyPath); | 63 bool result = injectKey(scriptState, key, value, keyPath); |
| 63 ASSERT_TRUE(result); | 64 ASSERT_TRUE(result); |
| 64 IDBKey* extractedKey = checkKeyFromValueAndKeyPathInternal(scriptState->isol
ate(), value, keyPath); | 65 IDBKey* extractedKey = checkKeyFromValueAndKeyPathInternal(scriptState->isol
ate(), value, keyPath); |
| 65 EXPECT_TRUE(key->isEqual(extractedKey)); | 66 EXPECT_TRUE(key->isEqual(extractedKey)); |
| 66 } | 67 } |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 checkInjection(scriptState(), IDBKey::createDate(4567), scriptObject, "foo.b
az"); | 168 checkInjection(scriptState(), IDBKey::createDate(4567), scriptObject, "foo.b
az"); |
| 168 checkInjection(scriptState(), IDBKey::createDate(4567), scriptObject, "bar")
; | 169 checkInjection(scriptState(), IDBKey::createDate(4567), scriptObject, "bar")
; |
| 169 checkInjection(scriptState(), IDBKey::createArray(IDBKey::KeyArray()), scrip
tObject, "foo.baz"); | 170 checkInjection(scriptState(), IDBKey::createArray(IDBKey::KeyArray()), scrip
tObject, "foo.baz"); |
| 170 checkInjection(scriptState(), IDBKey::createArray(IDBKey::KeyArray()), scrip
tObject, "bar"); | 171 checkInjection(scriptState(), IDBKey::createArray(IDBKey::KeyArray()), scrip
tObject, "bar"); |
| 171 | 172 |
| 172 checkInjectionFails(scriptState(), IDBKey::createString("zoo"), scriptObject
, "foo.bar.baz"); | 173 checkInjectionFails(scriptState(), IDBKey::createString("zoo"), scriptObject
, "foo.bar.baz"); |
| 173 checkInjection(scriptState(), IDBKey::createString("zoo"), scriptObject, "fo
o.xyz.foo"); | 174 checkInjection(scriptState(), IDBKey::createString("zoo"), scriptObject, "fo
o.xyz.foo"); |
| 174 } | 175 } |
| 175 | 176 |
| 176 } // namespace | 177 } // namespace |
| OLD | NEW |