1 // Copyright 2015 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "../../public/fpdf_doc.h"
6 #include "../../public/fpdfview.h"
7 #include "../../testing/embedder_test.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 class FPDFDocEmbeddertest : public EmbedderTest {
11 };
12
TEST_F(FPDFDocEmbeddertest,DestGetPageIndex)13 TEST_F(FPDFDocEmbeddertest, DestGetPageIndex) {
14 EXPECT_TRUE(OpenDocument("testing/resources/named_dests.pdf"));
15
16 // NULL FPDF_DEST case.
17 EXPECT_EQ(0, FPDFDest_GetPageIndex(document(), nullptr));
18
19 // Page number directly in item from Dests NameTree.
20 FPDF_DEST dest = FPDF_GetNamedDestByName(document(), "First");
21 EXPECT_NE(nullptr, dest);
22 EXPECT_EQ(1, FPDFDest_GetPageIndex(document(), dest));
23
24 // Page number via object reference in item from Dests NameTree.
25 dest = FPDF_GetNamedDestByName(document(), "Next");
26 EXPECT_NE(nullptr, dest);
27 EXPECT_EQ(1, FPDFDest_GetPageIndex(document(), dest));
28
29 // Page number directly in item from Dests dictionary.
30 dest = FPDF_GetNamedDestByName(document(), "FirstAlternate");
31 EXPECT_NE(nullptr, dest);
32 EXPECT_EQ(11, FPDFDest_GetPageIndex(document(), dest));
33
34 // Invalid object reference in item from Dests NameTree.
35 dest = FPDF_GetNamedDestByName(document(), "LastAlternate");
36 EXPECT_NE(nullptr, dest);
37 EXPECT_EQ(0, FPDFDest_GetPageIndex(document(), dest));
38 }
39