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