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/SerializedScriptValue.h" | 6 #include "bindings/core/v8/SerializedScriptValue.h" |
7 | 7 |
8 #include "bindings/core/v8/ExceptionStatePlaceholder.h" | 8 #include "bindings/core/v8/ExceptionStatePlaceholder.h" |
9 #include "bindings/core/v8/SerializedScriptValueFactory.h" | 9 #include "bindings/core/v8/SerializedScriptValueFactory.h" |
10 #include "bindings/core/v8/V8Binding.h" | 10 #include "bindings/core/v8/V8Binding.h" |
11 #include "bindings/core/v8/V8BindingForTesting.h" | 11 #include "bindings/core/v8/V8BindingForTesting.h" |
12 #include "bindings/core/v8/V8File.h" | 12 #include "bindings/core/v8/V8File.h" |
13 #include "core/fileapi/File.h" | 13 #include "core/fileapi/File.h" |
14 #include "public/platform/Platform.h" | 14 #include "public/platform/Platform.h" |
15 #include "public/platform/WebUnitTestSupport.h" | 15 #include "public/platform/WebUnitTestSupport.h" |
16 #include <gtest/gtest.h> | 16 #include <gtest/gtest.h> |
17 | 17 |
18 namespace blink { | 18 namespace blink { |
19 | 19 |
20 class SerializedScriptValueTest : public ::testing::Test { | 20 class SerializedScriptValueTest : public ::testing::Test { |
21 public: | 21 public: |
22 SerializedScriptValueTest() | 22 SerializedScriptValueTest() |
23 : m_scope(v8::Isolate::GetCurrent()) | 23 : m_scope(v8::Isolate::GetCurrent()) |
24 { | 24 { |
25 } | 25 } |
26 | 26 |
27 v8::Isolate* isolate() const { return m_scope.isolate(); } | 27 v8::Isolate* isolate() const { return m_scope.isolate(); } |
28 v8::Handle<v8::Object> creationContext() const { return m_scope.scriptState(
)->context()->Global(); } | 28 v8::Local<v8::Object> creationContext() const { return m_scope.scriptState()
->context()->Global(); } |
29 | 29 |
30 protected: | 30 protected: |
31 V8TestingScope m_scope; | 31 V8TestingScope m_scope; |
32 }; | 32 }; |
33 | 33 |
34 TEST_F(SerializedScriptValueTest, UserSelectedFile) | 34 TEST_F(SerializedScriptValueTest, UserSelectedFile) |
35 { | 35 { |
36 String filePath = Platform::current()->unitTestSupport()->webKitRootDir(); | 36 String filePath = Platform::current()->unitTestSupport()->webKitRootDir(); |
37 filePath.append("/Source/bindings/core/v8/SerializedScriptValueTest.cpp"); | 37 filePath.append("/Source/bindings/core/v8/SerializedScriptValueTest.cpp"); |
38 File* originalFile = File::create(filePath); | 38 File* originalFile = File::create(filePath); |
39 ASSERT_TRUE(originalFile->hasBackingFile()); | 39 ASSERT_TRUE(originalFile->hasBackingFile()); |
40 ASSERT_EQ(File::IsUserVisible, originalFile->userVisibility()); | 40 ASSERT_EQ(File::IsUserVisible, originalFile->userVisibility()); |
41 ASSERT_EQ(filePath, originalFile->path()); | 41 ASSERT_EQ(filePath, originalFile->path()); |
42 | 42 |
43 v8::Handle<v8::Value> v8OriginalFile = toV8(originalFile, creationContext(),
isolate()); | 43 v8::Local<v8::Value> v8OriginalFile = toV8(originalFile, creationContext(),
isolate()); |
44 RefPtr<SerializedScriptValue> serializedScriptValue = | 44 RefPtr<SerializedScriptValue> serializedScriptValue = |
45 SerializedScriptValueFactory::instance().create(v8OriginalFile, nullptr,
nullptr, ASSERT_NO_EXCEPTION, isolate()); | 45 SerializedScriptValueFactory::instance().create(v8OriginalFile, nullptr,
nullptr, ASSERT_NO_EXCEPTION, isolate()); |
46 v8::Handle<v8::Value> v8File = serializedScriptValue->deserialize(isolate())
; | 46 v8::Local<v8::Value> v8File = serializedScriptValue->deserialize(isolate()); |
47 | 47 |
48 ASSERT_TRUE(V8File::hasInstance(v8File, isolate())); | 48 ASSERT_TRUE(V8File::hasInstance(v8File, isolate())); |
49 File* file = V8File::toImpl(v8::Handle<v8::Object>::Cast(v8File)); | 49 File* file = V8File::toImpl(v8::Local<v8::Object>::Cast(v8File)); |
50 EXPECT_TRUE(file->hasBackingFile()); | 50 EXPECT_TRUE(file->hasBackingFile()); |
51 EXPECT_EQ(File::IsUserVisible, file->userVisibility()); | 51 EXPECT_EQ(File::IsUserVisible, file->userVisibility()); |
52 EXPECT_EQ(filePath, file->path()); | 52 EXPECT_EQ(filePath, file->path()); |
53 } | 53 } |
54 | 54 |
55 TEST_F(SerializedScriptValueTest, FileConstructorFile) | 55 TEST_F(SerializedScriptValueTest, FileConstructorFile) |
56 { | 56 { |
57 RefPtr<BlobDataHandle> blobDataHandle = BlobDataHandle::create(); | 57 RefPtr<BlobDataHandle> blobDataHandle = BlobDataHandle::create(); |
58 File* originalFile = File::create("hello.txt", 12345678.0, blobDataHandle); | 58 File* originalFile = File::create("hello.txt", 12345678.0, blobDataHandle); |
59 ASSERT_FALSE(originalFile->hasBackingFile()); | 59 ASSERT_FALSE(originalFile->hasBackingFile()); |
60 ASSERT_EQ(File::IsNotUserVisible, originalFile->userVisibility()); | 60 ASSERT_EQ(File::IsNotUserVisible, originalFile->userVisibility()); |
61 ASSERT_EQ("hello.txt", originalFile->name()); | 61 ASSERT_EQ("hello.txt", originalFile->name()); |
62 | 62 |
63 v8::Handle<v8::Value> v8OriginalFile = toV8(originalFile, creationContext(),
isolate()); | 63 v8::Local<v8::Value> v8OriginalFile = toV8(originalFile, creationContext(),
isolate()); |
64 RefPtr<SerializedScriptValue> serializedScriptValue = | 64 RefPtr<SerializedScriptValue> serializedScriptValue = |
65 SerializedScriptValueFactory::instance().create(v8OriginalFile, nullptr,
nullptr, ASSERT_NO_EXCEPTION, isolate()); | 65 SerializedScriptValueFactory::instance().create(v8OriginalFile, nullptr,
nullptr, ASSERT_NO_EXCEPTION, isolate()); |
66 v8::Handle<v8::Value> v8File = serializedScriptValue->deserialize(isolate())
; | 66 v8::Local<v8::Value> v8File = serializedScriptValue->deserialize(isolate()); |
67 | 67 |
68 ASSERT_TRUE(V8File::hasInstance(v8File, isolate())); | 68 ASSERT_TRUE(V8File::hasInstance(v8File, isolate())); |
69 File* file = V8File::toImpl(v8::Handle<v8::Object>::Cast(v8File)); | 69 File* file = V8File::toImpl(v8::Local<v8::Object>::Cast(v8File)); |
70 EXPECT_FALSE(file->hasBackingFile()); | 70 EXPECT_FALSE(file->hasBackingFile()); |
71 EXPECT_EQ(File::IsNotUserVisible, file->userVisibility()); | 71 EXPECT_EQ(File::IsNotUserVisible, file->userVisibility()); |
72 EXPECT_EQ("hello.txt", file->name()); | 72 EXPECT_EQ("hello.txt", file->name()); |
73 } | 73 } |
74 | 74 |
75 } // namespace blink | 75 } // namespace blink |
OLD | NEW |