| 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 |