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 |