Chromium Code Reviews| Index: fpdfsdk/src/fsdk_baseform_embeddertest.cpp |
| diff --git a/fpdfsdk/src/fsdk_baseform_embeddertest.cpp b/fpdfsdk/src/fsdk_baseform_embeddertest.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..10bfeda0dc890cc40069455d5c363b559e88f7d5 |
| --- /dev/null |
| +++ b/fpdfsdk/src/fsdk_baseform_embeddertest.cpp |
| @@ -0,0 +1,113 @@ |
| +// Copyright 2016 PDFium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "fpdfsdk/include/fsdk_baseform.h" |
| +#include "fpdfsdk/include/fsdk_define.h" |
| +#include "fpdfsdk/include/fsdk_mgr.h" |
| +#include "testing/embedder_test.h" |
| +#include "testing/embedder_test_mock_delegate.h" |
| +#include "testing/embedder_test_timer_handling_delegate.h" |
| +#include "testing/gmock/include/gmock/gmock.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +namespace { |
| + |
| +void CheckRect(const CPDF_Rect& actual, const CPDF_Rect& expected) { |
| + EXPECT_EQ(expected.left, actual.left); |
| + EXPECT_EQ(expected.bottom, actual.bottom); |
| + EXPECT_EQ(expected.right, actual.right); |
| + EXPECT_EQ(expected.top, actual.top); |
| +} |
| + |
| +} // Namespace. |
|
Lei Zhang
2016/01/29 23:39:23
just "namespace"
|
| + |
| +class FSDKBaseFormEmbeddertest : public EmbedderTest {}; |
| + |
| +TEST_F(FSDKBaseFormEmbeddertest, CBA_AnnotIterator) { |
| + EXPECT_TRUE(OpenDocument("annotiter.pdf")); |
| + EXPECT_TRUE(LoadPage(0)); |
| + EXPECT_TRUE(LoadPage(1)); |
| + EXPECT_TRUE(LoadPage(2)); |
| + |
| + CPDF_Rect LeftBottom(200, 200, 220, 220); |
| + CPDF_Rect RightBottom(400, 201, 420, 221); |
| + CPDF_Rect LeftTop(201, 400, 221, 420); |
| + CPDF_Rect RightTop(401, 401, 421, 421); |
| + |
| + { |
| + // Page 0 specifies "row order". |
| + CBA_AnnotIterator iter(GetSDKDocument()->GetPageView(0), "Widget", ""); |
| + CPDFSDK_Annot* pAnnot = iter.GetFirstAnnot(); |
| + CheckRect(pAnnot->GetRect(), RightTop); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), LeftTop); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), RightBottom); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), LeftBottom); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + EXPECT_EQ(iter.GetFirstAnnot(), pAnnot); |
| + |
| + pAnnot = iter.GetLastAnnot(); |
| + CheckRect(pAnnot->GetRect(), LeftBottom); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), RightBottom); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), LeftTop); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), RightTop); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + EXPECT_EQ(iter.GetLastAnnot(), pAnnot); |
| + } |
| + { |
| + // Page 1 specifies "column order" |
| + CBA_AnnotIterator iter(GetSDKDocument()->GetPageView(1), "Widget", ""); |
| + CPDFSDK_Annot* pAnnot = iter.GetFirstAnnot(); |
| + CheckRect(pAnnot->GetRect(), RightTop); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), RightBottom); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), LeftTop); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), LeftBottom); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + EXPECT_EQ(iter.GetFirstAnnot(), pAnnot); |
| + |
| + pAnnot = iter.GetLastAnnot(); |
| + CheckRect(pAnnot->GetRect(), LeftBottom); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), LeftTop); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), RightBottom); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), RightTop); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + EXPECT_EQ(iter.GetLastAnnot(), pAnnot); |
| + } |
| + { |
| + // Page 2 specifies "struct order" |
| + CBA_AnnotIterator iter(GetSDKDocument()->GetPageView(2), "Widget", ""); |
| + CPDFSDK_Annot* pAnnot = iter.GetFirstAnnot(); |
| + CheckRect(pAnnot->GetRect(), LeftBottom); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), RightTop); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), LeftTop); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), RightBottom); |
| + pAnnot = iter.GetNextAnnot(pAnnot); |
| + EXPECT_EQ(iter.GetFirstAnnot(), pAnnot); |
| + |
| + pAnnot = iter.GetLastAnnot(); |
| + CheckRect(pAnnot->GetRect(), RightBottom); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), LeftTop); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), RightTop); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + CheckRect(pAnnot->GetRect(), LeftBottom); |
| + pAnnot = iter.GetPrevAnnot(pAnnot); |
| + EXPECT_EQ(iter.GetLastAnnot(), pAnnot); |
| + } |
| +} |