OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "config.h" | 5 #include "config.h" |
6 #include "bindings/core/v8/V8Binding.h" | 6 #include "bindings/core/v8/V8Binding.h" |
7 | 7 |
8 #include "bindings/core/v8/ExceptionState.h" | 8 #include "bindings/core/v8/ExceptionState.h" |
9 #include "core/testing/GarbageCollectedScriptWrappable.h" | 9 #include "core/testing/GarbageCollectedScriptWrappable.h" |
10 #include "core/testing/RefCountedScriptWrappable.h" | 10 #include "core/testing/RefCountedScriptWrappable.h" |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
298 CHECK_TOV8VALUE("5678", handleValue); | 298 CHECK_TOV8VALUE("5678", handleValue); |
299 } | 299 } |
300 | 300 |
301 TEST_F(V8ValueTraitsTest, toImplArray) | 301 TEST_F(V8ValueTraitsTest, toImplArray) |
302 { | 302 { |
303 { | 303 { |
304 v8::Handle<v8::Array> v8StringArray = v8::Array::New(m_scope.isolate(),
2); | 304 v8::Handle<v8::Array> v8StringArray = v8::Array::New(m_scope.isolate(),
2); |
305 v8StringArray->Set(toV8Value(0), toV8Value("Hello, World!")); | 305 v8StringArray->Set(toV8Value(0), toV8Value("Hello, World!")); |
306 v8StringArray->Set(toV8Value(1), toV8Value("Hi, Mom!")); | 306 v8StringArray->Set(toV8Value(1), toV8Value("Hi, Mom!")); |
307 | 307 |
308 Vector<String> stringVector = toImplArray<String>(v8StringArray, 0, m_sc
ope.isolate()); | 308 NonThrowableExceptionState exceptionState; |
| 309 Vector<String> stringVector = toImplArray<String>(v8StringArray, 0, m_sc
ope.isolate(), exceptionState); |
309 EXPECT_EQ(2U, stringVector.size()); | 310 EXPECT_EQ(2U, stringVector.size()); |
310 EXPECT_EQ("Hello, World!", stringVector[0]); | 311 EXPECT_EQ("Hello, World!", stringVector[0]); |
311 EXPECT_EQ("Hi, Mom!", stringVector[1]); | 312 EXPECT_EQ("Hi, Mom!", stringVector[1]); |
312 } | 313 } |
313 { | 314 { |
314 v8::Handle<v8::Array> v8UnsignedArray = v8::Array::New(m_scope.isolate()
, 3); | 315 v8::Handle<v8::Array> v8UnsignedArray = v8::Array::New(m_scope.isolate()
, 3); |
315 v8UnsignedArray->Set(toV8Value(0), toV8Value(42)); | 316 v8UnsignedArray->Set(toV8Value(0), toV8Value(42)); |
316 v8UnsignedArray->Set(toV8Value(1), toV8Value(1729)); | 317 v8UnsignedArray->Set(toV8Value(1), toV8Value(1729)); |
317 v8UnsignedArray->Set(toV8Value(2), toV8Value(31773)); | 318 v8UnsignedArray->Set(toV8Value(2), toV8Value(31773)); |
318 | 319 |
319 Vector<unsigned> unsignedVector = toImplArray<unsigned>(v8UnsignedArray,
0, m_scope.isolate()); | 320 NonThrowableExceptionState exceptionState; |
| 321 Vector<unsigned> unsignedVector = toImplArray<unsigned>(v8UnsignedArray,
0, m_scope.isolate(), exceptionState); |
320 EXPECT_EQ(3U, unsignedVector.size()); | 322 EXPECT_EQ(3U, unsignedVector.size()); |
321 EXPECT_EQ(42U, unsignedVector[0]); | 323 EXPECT_EQ(42U, unsignedVector[0]); |
322 EXPECT_EQ(1729U, unsignedVector[1]); | 324 EXPECT_EQ(1729U, unsignedVector[1]); |
323 EXPECT_EQ(31773U, unsignedVector[2]); | 325 EXPECT_EQ(31773U, unsignedVector[2]); |
324 } | 326 } |
325 { | 327 { |
326 const double doublePi = 3.141592653589793238; | 328 const double doublePi = 3.141592653589793238; |
327 const float floatPi = doublePi; | 329 const float floatPi = doublePi; |
328 v8::Handle<v8::Array> v8RealArray = v8::Array::New(m_scope.isolate(), 1)
; | 330 v8::Handle<v8::Array> v8RealArray = v8::Array::New(m_scope.isolate(), 1)
; |
329 v8RealArray->Set(toV8Value(0), toV8Value(doublePi)); | 331 v8RealArray->Set(toV8Value(0), toV8Value(doublePi)); |
330 | 332 |
331 Vector<double> doubleVector = toImplArray<double>(v8RealArray, 0, m_scop
e.isolate()); | 333 NonThrowableExceptionState exceptionState; |
| 334 Vector<double> doubleVector = toImplArray<double>(v8RealArray, 0, m_scop
e.isolate(), exceptionState); |
332 EXPECT_EQ(1U, doubleVector.size()); | 335 EXPECT_EQ(1U, doubleVector.size()); |
333 EXPECT_EQ(doublePi, doubleVector[0]); | 336 EXPECT_EQ(doublePi, doubleVector[0]); |
334 | 337 |
335 Vector<float> floatVector = toImplArray<float>(v8RealArray, 0, m_scope.i
solate()); | 338 Vector<float> floatVector = toImplArray<float>(v8RealArray, 0, m_scope.i
solate(), exceptionState); |
336 EXPECT_EQ(1U, floatVector.size()); | 339 EXPECT_EQ(1U, floatVector.size()); |
337 EXPECT_EQ(floatPi, floatVector[0]); | 340 EXPECT_EQ(floatPi, floatVector[0]); |
338 } | 341 } |
339 { | 342 { |
340 v8::Handle<v8::Array> v8Array = v8::Array::New(m_scope.isolate(), 3); | 343 v8::Handle<v8::Array> v8Array = v8::Array::New(m_scope.isolate(), 3); |
341 v8Array->Set(toV8Value(0), toV8Value("Vini, vidi, vici.")); | 344 v8Array->Set(toV8Value(0), toV8Value("Vini, vidi, vici.")); |
342 v8Array->Set(toV8Value(1), toV8Value(65535)); | 345 v8Array->Set(toV8Value(1), toV8Value(65535)); |
343 v8Array->Set(toV8Value(2), toV8Value(0.125)); | 346 v8Array->Set(toV8Value(2), toV8Value(0.125)); |
344 | 347 |
345 Vector<v8::Handle<v8::Value> > v8HandleVector = toImplArray<v8::Handle<v
8::Value> >(v8Array, 0, m_scope.isolate()); | 348 NonThrowableExceptionState exceptionState; |
| 349 Vector<v8::Handle<v8::Value> > v8HandleVector = toImplArray<v8::Handle<v
8::Value> >(v8Array, 0, m_scope.isolate(), exceptionState); |
346 EXPECT_EQ(3U, v8HandleVector.size()); | 350 EXPECT_EQ(3U, v8HandleVector.size()); |
347 NonThrowableExceptionState exceptionState; | |
348 EXPECT_EQ("Vini, vidi, vici.", toScalarValueString(v8HandleVector[0], ex
ceptionState)); | 351 EXPECT_EQ("Vini, vidi, vici.", toScalarValueString(v8HandleVector[0], ex
ceptionState)); |
349 EXPECT_EQ(65535U, toUInt32(v8HandleVector[1])); | 352 EXPECT_EQ(65535U, toUInt32(v8HandleVector[1])); |
350 EXPECT_EQ(0.125, toFloat(v8HandleVector[2])); | 353 EXPECT_EQ(0.125, toFloat(v8HandleVector[2])); |
351 | 354 |
352 Vector<ScriptValue> scriptValueVector = toImplArray<ScriptValue>(v8Array
, 0, m_scope.isolate()); | 355 Vector<ScriptValue> scriptValueVector = toImplArray<ScriptValue>(v8Array
, 0, m_scope.isolate(), exceptionState); |
353 EXPECT_EQ(3U, scriptValueVector.size()); | 356 EXPECT_EQ(3U, scriptValueVector.size()); |
354 String reportOnZela; | 357 String reportOnZela; |
355 EXPECT_TRUE(scriptValueVector[0].toString(reportOnZela)); | 358 EXPECT_TRUE(scriptValueVector[0].toString(reportOnZela)); |
356 EXPECT_EQ("Vini, vidi, vici.", reportOnZela); | 359 EXPECT_EQ("Vini, vidi, vici.", reportOnZela); |
357 EXPECT_EQ(65535U, toUInt32(scriptValueVector[1].v8Value())); | 360 EXPECT_EQ(65535U, toUInt32(scriptValueVector[1].v8Value())); |
358 EXPECT_EQ(0.125, toFloat(scriptValueVector[2].v8Value())); | 361 EXPECT_EQ(0.125, toFloat(scriptValueVector[2].v8Value())); |
359 } | 362 } |
360 { | 363 { |
361 v8::Handle<v8::Array> v8StringArray1 = v8::Array::New(m_scope.isolate(),
2); | 364 v8::Handle<v8::Array> v8StringArray1 = v8::Array::New(m_scope.isolate(),
2); |
362 v8StringArray1->Set(toV8Value(0), toV8Value("foo")); | 365 v8StringArray1->Set(toV8Value(0), toV8Value("foo")); |
363 v8StringArray1->Set(toV8Value(1), toV8Value("bar")); | 366 v8StringArray1->Set(toV8Value(1), toV8Value("bar")); |
364 v8::Handle<v8::Array> v8StringArray2 = v8::Array::New(m_scope.isolate(),
3); | 367 v8::Handle<v8::Array> v8StringArray2 = v8::Array::New(m_scope.isolate(),
3); |
365 v8StringArray2->Set(toV8Value(0), toV8Value("x")); | 368 v8StringArray2->Set(toV8Value(0), toV8Value("x")); |
366 v8StringArray2->Set(toV8Value(1), toV8Value("y")); | 369 v8StringArray2->Set(toV8Value(1), toV8Value("y")); |
367 v8StringArray2->Set(toV8Value(2), toV8Value("z")); | 370 v8StringArray2->Set(toV8Value(2), toV8Value("z")); |
368 v8::Handle<v8::Array> v8StringArrayArray = v8::Array::New(m_scope.isolat
e(), 2); | 371 v8::Handle<v8::Array> v8StringArrayArray = v8::Array::New(m_scope.isolat
e(), 2); |
369 v8StringArrayArray->Set(toV8Value(0), v8StringArray1); | 372 v8StringArrayArray->Set(toV8Value(0), v8StringArray1); |
370 v8StringArrayArray->Set(toV8Value(1), v8StringArray2); | 373 v8StringArrayArray->Set(toV8Value(1), v8StringArray2); |
371 | 374 |
372 Vector<Vector<String> > stringVectorVector = toImplArray<Vector<String>
>(v8StringArrayArray, 0, m_scope.isolate()); | 375 NonThrowableExceptionState exceptionState; |
| 376 Vector<Vector<String> > stringVectorVector = toImplArray<Vector<String>
>(v8StringArrayArray, 0, m_scope.isolate(), exceptionState); |
373 EXPECT_EQ(2U, stringVectorVector.size()); | 377 EXPECT_EQ(2U, stringVectorVector.size()); |
374 EXPECT_EQ(2U, stringVectorVector[0].size()); | 378 EXPECT_EQ(2U, stringVectorVector[0].size()); |
375 EXPECT_EQ("foo", stringVectorVector[0][0]); | 379 EXPECT_EQ("foo", stringVectorVector[0][0]); |
376 EXPECT_EQ("bar", stringVectorVector[0][1]); | 380 EXPECT_EQ("bar", stringVectorVector[0][1]); |
377 EXPECT_EQ(3U, stringVectorVector[1].size()); | 381 EXPECT_EQ(3U, stringVectorVector[1].size()); |
378 EXPECT_EQ("x", stringVectorVector[1][0]); | 382 EXPECT_EQ("x", stringVectorVector[1][0]); |
379 EXPECT_EQ("y", stringVectorVector[1][1]); | 383 EXPECT_EQ("y", stringVectorVector[1][1]); |
380 EXPECT_EQ("z", stringVectorVector[1][2]); | 384 EXPECT_EQ("z", stringVectorVector[1][2]); |
381 } | 385 } |
382 } | 386 } |
383 | 387 |
384 } // namespace | 388 } // namespace |
385 | 389 |
386 } // namespace blink | 390 } // namespace blink |
OLD | NEW |