Fix nits in cpdf_nametree tests. - Make check functions self-sufficient, rather than requiring the caller to pass in a non-null pointer. - Make check functions take a const pointer, and make the pointers const in the caller. - Remove const keyword from POD parameters. - Change some variable naming style. Change-Id: I1884a176df109d41f5055fb8e1191284df1eaf25 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/86932 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfdoc/cpdf_nametree_unittest.cpp b/core/fpdfdoc/cpdf_nametree_unittest.cpp index a269b06..98114de 100644 --- a/core/fpdfdoc/cpdf_nametree_unittest.cpp +++ b/core/fpdfdoc/cpdf_nametree_unittest.cpp
@@ -11,34 +11,40 @@ namespace { -void AddNameKeyValue(CPDF_Array* pNames, const char* key, const int value) { - pNames->AppendNew<CPDF_String>(key, false); - pNames->AppendNew<CPDF_Number>(value); +void AddNameKeyValue(CPDF_Array* names, const char* key, int value) { + names->AppendNew<CPDF_String>(key, false); + names->AppendNew<CPDF_Number>(value); } -void CheckNameKeyValue(CPDF_Array* pNames, - const int index, +void CheckNameKeyValue(const CPDF_Array* names, + int pair_index, const char* key, - const int value) { - EXPECT_STREQ(key, pNames->GetStringAt(index * 2).c_str()); - EXPECT_EQ(value, pNames->GetIntegerAt(index * 2 + 1)); + int value) { + ASSERT_TRUE(names); + EXPECT_STREQ(key, names->GetStringAt(pair_index * 2).c_str()); + EXPECT_EQ(value, names->GetIntegerAt(pair_index * 2 + 1)); } -void AddLimitsArray(CPDF_Dictionary* pNode, +void AddLimitsArray(CPDF_Dictionary* node, const char* least, const char* greatest) { - CPDF_Array* pLimits = pNode->SetNewFor<CPDF_Array>("Limits"); - pLimits->AppendNew<CPDF_String>(least, false); - pLimits->AppendNew<CPDF_String>(greatest, false); + CPDF_Array* limits = node->SetNewFor<CPDF_Array>("Limits"); + limits->AppendNew<CPDF_String>(least, false); + limits->AppendNew<CPDF_String>(greatest, false); } -void CheckLimitsArray(CPDF_Dictionary* pNode, +void CheckLimitsArray(const CPDF_Dictionary* node, const char* least, const char* greatest) { - CPDF_Array* pLimits = pNode->GetArrayFor("Limits"); - ASSERT_TRUE(pLimits); - EXPECT_STREQ(least, pLimits->GetStringAt(0).c_str()); - EXPECT_STREQ(greatest, pLimits->GetStringAt(1).c_str()); + ASSERT_TRUE(node); + const CPDF_Array* limits = node->GetArrayFor("Limits"); + ASSERT_TRUE(limits); + const CPDF_String* left = ToString(limits->GetObjectAt(0)); + ASSERT_TRUE(left); + const CPDF_String* right = ToString(limits->GetObjectAt(1)); + ASSERT_TRUE(right); + EXPECT_STREQ(least, left->GetString().c_str()); + EXPECT_STREQ(greatest, right->GetString().c_str()); } // Set up a name tree with 3 levels and 5 nodes, per diagram: @@ -159,7 +165,7 @@ TEST(cpdf_nametree, AddIntoEmptyNames) { // Set up a name tree with an empty Names array. auto pRootDict = pdfium::MakeRetain<CPDF_Dictionary>(); - CPDF_Array* pNames = pRootDict->SetNewFor<CPDF_Array>("Names"); + const CPDF_Array* pNames = pRootDict->SetNewFor<CPDF_Array>("Names"); std::unique_ptr<CPDF_NameTree> name_tree = CPDF_NameTree::CreateForTesting(pRootDict.Get()); @@ -226,41 +232,38 @@ EXPECT_EQ(-5, name_tree->LookupValue(L"0.txt")->GetInteger()); // Check that the node on the first level has the expected limits. - CPDF_Dictionary* pKid1 = + const CPDF_Dictionary* pKid1 = name_tree->GetRootForTesting()->GetArrayFor("Kids")->GetDictAt(0); ASSERT_TRUE(pKid1); CheckLimitsArray(pKid1, "0.txt", "99.txt"); // Check that the nodes on the second level has the expected limits and names. - CPDF_Dictionary* pGrandKid2 = pKid1->GetArrayFor("Kids")->GetDictAt(0); + const CPDF_Dictionary* pGrandKid2 = pKid1->GetArrayFor("Kids")->GetDictAt(0); ASSERT_TRUE(pGrandKid2); CheckLimitsArray(pGrandKid2, "0.txt", "6.txt"); - CPDF_Dictionary* pGrandKid3 = pKid1->GetArrayFor("Kids")->GetDictAt(1); + const CPDF_Dictionary* pGrandKid3 = pKid1->GetArrayFor("Kids")->GetDictAt(1); ASSERT_TRUE(pGrandKid3); CheckLimitsArray(pGrandKid3, "9.txt", "99.txt"); - CPDF_Array* pNames = pGrandKid3->GetArrayFor("Names"); - ASSERT_TRUE(pNames); + const CPDF_Array* pNames = pGrandKid3->GetArrayFor("Names"); CheckNameKeyValue(pNames, 0, "9.txt", 999); CheckNameKeyValue(pNames, 1, "99.txt", 99); // Check that the nodes on the third level has the expected limits and names. - CPDF_Dictionary* pGreatGrandKid4 = + const CPDF_Dictionary* pGreatGrandKid4 = pGrandKid2->GetArrayFor("Kids")->GetDictAt(0); ASSERT_TRUE(pGreatGrandKid4); CheckLimitsArray(pGreatGrandKid4, "0.txt", "2.txt"); pNames = pGreatGrandKid4->GetArrayFor("Names"); - ASSERT_TRUE(pNames); CheckNameKeyValue(pNames, 0, "0.txt", -5); CheckNameKeyValue(pNames, 1, "1.txt", 111); CheckNameKeyValue(pNames, 2, "2.txt", 222); - CPDF_Dictionary* pGreatGrandKid5 = + const CPDF_Dictionary* pGreatGrandKid5 = pGrandKid2->GetArrayFor("Kids")->GetDictAt(1); ASSERT_TRUE(pGreatGrandKid5); CheckLimitsArray(pGreatGrandKid5, "3.txt", "6.txt"); pNames = pGreatGrandKid5->GetArrayFor("Names"); - ASSERT_TRUE(pNames); CheckNameKeyValue(pNames, 0, "3.txt", 333); CheckNameKeyValue(pNames, 1, "4.txt", 444); CheckNameKeyValue(pNames, 2, "5.txt", 555); @@ -274,17 +277,17 @@ CPDF_NameTree::CreateForTesting(pRootDict.Get()); // Retrieve the kid dictionaries. - CPDF_Dictionary* pKid1 = + const CPDF_Dictionary* pKid1 = name_tree->GetRootForTesting()->GetArrayFor("Kids")->GetDictAt(0); ASSERT_TRUE(pKid1); - CPDF_Dictionary* pGrandKid2 = pKid1->GetArrayFor("Kids")->GetDictAt(0); + const CPDF_Dictionary* pGrandKid2 = pKid1->GetArrayFor("Kids")->GetDictAt(0); ASSERT_TRUE(pGrandKid2); - CPDF_Dictionary* pGrandKid3 = pKid1->GetArrayFor("Kids")->GetDictAt(1); + const CPDF_Dictionary* pGrandKid3 = pKid1->GetArrayFor("Kids")->GetDictAt(1); ASSERT_TRUE(pGrandKid3); - CPDF_Dictionary* pGreatGrandKid4 = + const CPDF_Dictionary* pGreatGrandKid4 = pGrandKid2->GetArrayFor("Kids")->GetDictAt(0); ASSERT_TRUE(pGreatGrandKid4); - CPDF_Dictionary* pGreatGrandKid5 = + const CPDF_Dictionary* pGreatGrandKid5 = pGrandKid2->GetArrayFor("Kids")->GetDictAt(1); ASSERT_TRUE(pGreatGrandKid5);