1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2019 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker #include "fxjs/xfa/cfxjse_value.h" 6*3ac0a46fSAndroid Build Coastguard Worker 7*3ac0a46fSAndroid Build Coastguard Worker #include <memory> 8*3ac0a46fSAndroid Build Coastguard Worker #include <utility> 9*3ac0a46fSAndroid Build Coastguard Worker #include <vector> 10*3ac0a46fSAndroid Build Coastguard Worker 11*3ac0a46fSAndroid Build Coastguard Worker #include "fxjs/xfa/cfxjse_engine.h" 12*3ac0a46fSAndroid Build Coastguard Worker #include "testing/gtest/include/gtest/gtest.h" 13*3ac0a46fSAndroid Build Coastguard Worker #include "testing/xfa_js_embedder_test.h" 14*3ac0a46fSAndroid Build Coastguard Worker 15*3ac0a46fSAndroid Build Coastguard Worker class CFXJSE_ValueEmbedderTest : public XFAJSEmbedderTest {}; 16*3ac0a46fSAndroid Build Coastguard Worker TEST_F(CFXJSE_ValueEmbedderTest,Empty)17*3ac0a46fSAndroid Build Coastguard WorkerTEST_F(CFXJSE_ValueEmbedderTest, Empty) { 18*3ac0a46fSAndroid Build Coastguard Worker ASSERT_TRUE(OpenDocument("simple_xfa.pdf")); 19*3ac0a46fSAndroid Build Coastguard Worker 20*3ac0a46fSAndroid Build Coastguard Worker auto pValue = std::make_unique<CFXJSE_Value>(); 21*3ac0a46fSAndroid Build Coastguard Worker EXPECT_TRUE(pValue->IsEmpty()); 22*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(pValue->IsUndefined(isolate())); 23*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(pValue->IsNull(isolate())); 24*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(pValue->IsBoolean(isolate())); 25*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(pValue->IsString(isolate())); 26*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(pValue->IsNumber(isolate())); 27*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(pValue->IsObject(isolate())); 28*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(pValue->IsArray(isolate())); 29*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(pValue->IsFunction(isolate())); 30*3ac0a46fSAndroid Build Coastguard Worker } 31*3ac0a46fSAndroid Build Coastguard Worker TEST_F(CFXJSE_ValueEmbedderTest,EmptyArrayInsert)32*3ac0a46fSAndroid Build Coastguard WorkerTEST_F(CFXJSE_ValueEmbedderTest, EmptyArrayInsert) { 33*3ac0a46fSAndroid Build Coastguard Worker ASSERT_TRUE(OpenDocument("simple_xfa.pdf")); 34*3ac0a46fSAndroid Build Coastguard Worker 35*3ac0a46fSAndroid Build Coastguard Worker // Test inserting empty values into arrays. 36*3ac0a46fSAndroid Build Coastguard Worker auto pValue = std::make_unique<CFXJSE_Value>(); 37*3ac0a46fSAndroid Build Coastguard Worker std::vector<std::unique_ptr<CFXJSE_Value>> vec; 38*3ac0a46fSAndroid Build Coastguard Worker vec.push_back(std::move(pValue)); 39*3ac0a46fSAndroid Build Coastguard Worker 40*3ac0a46fSAndroid Build Coastguard Worker CFXJSE_Value array; 41*3ac0a46fSAndroid Build Coastguard Worker array.SetArray(isolate(), vec); 42*3ac0a46fSAndroid Build Coastguard Worker EXPECT_TRUE(array.IsArray(isolate())); 43*3ac0a46fSAndroid Build Coastguard Worker } 44