|  | // Copyright 2019 PDFium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "fxjs/xfa/cfxjse_value.h" | 
|  |  | 
|  | #include <memory> | 
|  | #include <utility> | 
|  | #include <vector> | 
|  |  | 
|  | #include "fxjs/xfa/cfxjse_engine.h" | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  | #include "testing/xfa_js_embedder_test.h" | 
|  | #include "third_party/base/ptr_util.h" | 
|  |  | 
|  | class CFXJSE_ValueEmbedderTest : public XFAJSEmbedderTest {}; | 
|  |  | 
|  | TEST_F(CFXJSE_ValueEmbedderTest, Empty) { | 
|  | ASSERT_TRUE(OpenDocument("simple_xfa.pdf")); | 
|  |  | 
|  | auto pValue = pdfium::MakeUnique<CFXJSE_Value>(GetIsolate()); | 
|  | EXPECT_TRUE(pValue->IsEmpty()); | 
|  | EXPECT_FALSE(pValue->IsUndefined()); | 
|  | EXPECT_FALSE(pValue->IsNull()); | 
|  | EXPECT_FALSE(pValue->IsBoolean()); | 
|  | EXPECT_FALSE(pValue->IsString()); | 
|  | EXPECT_FALSE(pValue->IsNumber()); | 
|  | EXPECT_FALSE(pValue->IsObject()); | 
|  | EXPECT_FALSE(pValue->IsArray()); | 
|  | EXPECT_FALSE(pValue->IsFunction()); | 
|  | EXPECT_FALSE(pValue->IsDate()); | 
|  | } | 
|  |  | 
|  | TEST_F(CFXJSE_ValueEmbedderTest, EmptyArrayInsert) { | 
|  | ASSERT_TRUE(OpenDocument("simple_xfa.pdf")); | 
|  |  | 
|  | // Test inserting empty values into arrays. | 
|  | auto pValue = pdfium::MakeUnique<CFXJSE_Value>(GetIsolate()); | 
|  | std::vector<std::unique_ptr<CFXJSE_Value>> vec; | 
|  | vec.push_back(std::move(pValue)); | 
|  |  | 
|  | CFXJSE_Value array(GetIsolate()); | 
|  | array.SetArray(vec); | 
|  | EXPECT_TRUE(array.IsArray()); | 
|  | } |