Merge to XFA: Create top-level public/ header directory.
[pdfium.git] / fpdfsdk / src / fpdfdoc_embeddertest.cpp
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
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 }