| // Copyright 2019 The PDFium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "public/fpdfview.h" | |
| #include "testing/gtest/include/gtest/gtest.h" | |
| #ifdef PDF_ENABLE_XFA | |
| TEST(FPDFView, BstrBadArgs) { | |
| EXPECT_EQ(-1, FPDF_BStr_Init(nullptr)); | |
| EXPECT_EQ(-1, FPDF_BStr_Set(nullptr, "clams", -1)); | |
| EXPECT_EQ(-1, FPDF_BStr_Clear(nullptr)); | |
| } | |
| TEST(FPDFView, BstrEmpty) { | |
| FPDF_BSTR bst; | |
| EXPECT_EQ(0, FPDF_BStr_Init(&bst)); | |
| EXPECT_FALSE(bst.str); | |
| EXPECT_FALSE(bst.len); | |
| EXPECT_EQ(0, FPDF_BStr_Clear(&bst)); | |
| } | |
| TEST(FPDFView, BstrNormal) { | |
| FPDF_BSTR bst; | |
| EXPECT_EQ(0, FPDF_BStr_Init(&bst)); | |
| EXPECT_EQ(0, FPDF_BStr_Set(&bst, "clams", -1)); | |
| EXPECT_STREQ("clams", bst.str); | |
| EXPECT_EQ(5, bst.len); | |
| EXPECT_EQ(0, FPDF_BStr_Clear(&bst)); | |
| EXPECT_FALSE(bst.str); | |
| EXPECT_FALSE(bst.len); | |
| } | |
| TEST(FPDFView, BstrReassign) { | |
| FPDF_BSTR bst; | |
| EXPECT_EQ(0, FPDF_BStr_Init(&bst)); | |
| EXPECT_EQ(0, FPDF_BStr_Set(&bst, "clams", 3)); | |
| EXPECT_STREQ("cla", bst.str); | |
| EXPECT_EQ(3, bst.len); | |
| EXPECT_EQ(0, FPDF_BStr_Set(&bst, "clams", 5)); | |
| EXPECT_STREQ("clams", bst.str); | |
| EXPECT_EQ(5, bst.len); | |
| EXPECT_EQ(0, FPDF_BStr_Set(&bst, "clams", 1)); | |
| EXPECT_STREQ("c", bst.str); | |
| EXPECT_EQ(1, bst.len); | |
| EXPECT_EQ(0, FPDF_BStr_Set(&bst, "clams", 0)); | |
| EXPECT_FALSE(bst.str); | |
| EXPECT_EQ(0, bst.len); | |
| EXPECT_EQ(0, FPDF_BStr_Clear(&bst)); | |
| } | |
| #endif // PDF_ENABLE_XFA |