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 "public/fpdfview.h"
6*3ac0a46fSAndroid Build Coastguard Worker #include "testing/gtest/include/gtest/gtest.h"
7*3ac0a46fSAndroid Build Coastguard Worker
8*3ac0a46fSAndroid Build Coastguard Worker #ifdef PDF_ENABLE_XFA
TEST(FPDFView,BstrBadArgs)9*3ac0a46fSAndroid Build Coastguard Worker TEST(FPDFView, BstrBadArgs) {
10*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(-1, FPDF_BStr_Init(nullptr));
11*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(-1, FPDF_BStr_Set(nullptr, "clams", -1));
12*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(-1, FPDF_BStr_Clear(nullptr));
13*3ac0a46fSAndroid Build Coastguard Worker }
14*3ac0a46fSAndroid Build Coastguard Worker
TEST(FPDFView,BstrEmpty)15*3ac0a46fSAndroid Build Coastguard Worker TEST(FPDFView, BstrEmpty) {
16*3ac0a46fSAndroid Build Coastguard Worker FPDF_BSTR bst;
17*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, FPDF_BStr_Init(&bst));
18*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(bst.str);
19*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(bst.len);
20*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, FPDF_BStr_Clear(&bst));
21*3ac0a46fSAndroid Build Coastguard Worker }
22*3ac0a46fSAndroid Build Coastguard Worker
TEST(FPDFView,BstrNormal)23*3ac0a46fSAndroid Build Coastguard Worker TEST(FPDFView, BstrNormal) {
24*3ac0a46fSAndroid Build Coastguard Worker FPDF_BSTR bst;
25*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, FPDF_BStr_Init(&bst));
26*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, FPDF_BStr_Set(&bst, "clams", -1));
27*3ac0a46fSAndroid Build Coastguard Worker EXPECT_STREQ("clams", bst.str);
28*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(5, bst.len);
29*3ac0a46fSAndroid Build Coastguard Worker
30*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, FPDF_BStr_Clear(&bst));
31*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(bst.str);
32*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(bst.len);
33*3ac0a46fSAndroid Build Coastguard Worker }
34*3ac0a46fSAndroid Build Coastguard Worker
TEST(FPDFView,BstrReassign)35*3ac0a46fSAndroid Build Coastguard Worker TEST(FPDFView, BstrReassign) {
36*3ac0a46fSAndroid Build Coastguard Worker FPDF_BSTR bst;
37*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, FPDF_BStr_Init(&bst));
38*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, FPDF_BStr_Set(&bst, "clams", 3));
39*3ac0a46fSAndroid Build Coastguard Worker EXPECT_STREQ("cla", bst.str);
40*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(3, bst.len);
41*3ac0a46fSAndroid Build Coastguard Worker
42*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, FPDF_BStr_Set(&bst, "clams", 5));
43*3ac0a46fSAndroid Build Coastguard Worker EXPECT_STREQ("clams", bst.str);
44*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(5, bst.len);
45*3ac0a46fSAndroid Build Coastguard Worker
46*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, FPDF_BStr_Set(&bst, "clams", 1));
47*3ac0a46fSAndroid Build Coastguard Worker EXPECT_STREQ("c", bst.str);
48*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(1, bst.len);
49*3ac0a46fSAndroid Build Coastguard Worker
50*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, FPDF_BStr_Set(&bst, "clams", 0));
51*3ac0a46fSAndroid Build Coastguard Worker EXPECT_FALSE(bst.str);
52*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, bst.len);
53*3ac0a46fSAndroid Build Coastguard Worker
54*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(0, FPDF_BStr_Clear(&bst));
55*3ac0a46fSAndroid Build Coastguard Worker }
56*3ac0a46fSAndroid Build Coastguard Worker #endif // PDF_ENABLE_XFA
57