Fix emulator build error
[platform/framework/web/chromium-efl.git] / pdf / document_layout_unittest.cc
index b10e6e3..ef8a2da 100644 (file)
@@ -1,9 +1,14 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
+// Copyright 2019 The Chromium Authors
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
 #include "pdf/document_layout.h"
 
+#include "base/i18n/rtl.h"
+#include "base/test/values_test_util.h"
+#include "base/values.h"
+#include "pdf/page_orientation.h"
+#include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/size.h"
@@ -18,34 +23,43 @@ class DocumentLayoutOptionsTest : public testing::Test {
 };
 
 TEST_F(DocumentLayoutOptionsTest, DefaultConstructor) {
+  EXPECT_EQ(options_.direction(), base::i18n::UNKNOWN_DIRECTION);
   EXPECT_EQ(options_.default_page_orientation(), PageOrientation::kOriginal);
   EXPECT_EQ(options_.page_spread(), DocumentLayout::PageSpread::kOneUp);
 }
 
 TEST_F(DocumentLayoutOptionsTest, CopyConstructor) {
+  options_.set_direction(base::i18n::RIGHT_TO_LEFT);
   options_.RotatePagesClockwise();
   options_.set_page_spread(DocumentLayout::PageSpread::kTwoUpOdd);
 
   DocumentLayout::Options copy(options_);
+  EXPECT_EQ(copy.direction(), base::i18n::RIGHT_TO_LEFT);
   EXPECT_EQ(copy.default_page_orientation(), PageOrientation::kClockwise90);
   EXPECT_EQ(copy.page_spread(), DocumentLayout::PageSpread::kTwoUpOdd);
 
+  options_.set_direction(base::i18n::LEFT_TO_RIGHT);
   options_.RotatePagesClockwise();
   options_.set_page_spread(DocumentLayout::PageSpread::kOneUp);
+  EXPECT_EQ(copy.direction(), base::i18n::RIGHT_TO_LEFT);
   EXPECT_EQ(copy.default_page_orientation(), PageOrientation::kClockwise90);
   EXPECT_EQ(copy.page_spread(), DocumentLayout::PageSpread::kTwoUpOdd);
 }
 
 TEST_F(DocumentLayoutOptionsTest, CopyAssignment) {
+  options_.set_direction(base::i18n::RIGHT_TO_LEFT);
   options_.RotatePagesClockwise();
   options_.set_page_spread(DocumentLayout::PageSpread::kTwoUpOdd);
 
   DocumentLayout::Options copy = options_;
+  EXPECT_EQ(copy.direction(), base::i18n::RIGHT_TO_LEFT);
   EXPECT_EQ(copy.default_page_orientation(), PageOrientation::kClockwise90);
   EXPECT_EQ(copy.page_spread(), DocumentLayout::PageSpread::kTwoUpOdd);
 
+  options_.set_direction(base::i18n::LEFT_TO_RIGHT);
   options_.RotatePagesClockwise();
   options_.set_page_spread(DocumentLayout::PageSpread::kOneUp);
+  EXPECT_EQ(copy.direction(), base::i18n::RIGHT_TO_LEFT);
   EXPECT_EQ(copy.default_page_orientation(), PageOrientation::kClockwise90);
   EXPECT_EQ(copy.page_spread(), DocumentLayout::PageSpread::kTwoUpOdd);
 }
@@ -56,6 +70,12 @@ TEST_F(DocumentLayoutOptionsTest, Equals) {
   DocumentLayout::Options copy;
   EXPECT_TRUE(copy == options_);
 
+  options_.set_direction(base::i18n::RIGHT_TO_LEFT);
+  EXPECT_FALSE(copy == options_);
+
+  copy.set_direction(base::i18n::RIGHT_TO_LEFT);
+  EXPECT_TRUE(copy == options_);
+
   options_.RotatePagesClockwise();
   EXPECT_FALSE(copy == options_);
 
@@ -73,12 +93,6 @@ TEST_F(DocumentLayoutOptionsTest, Equals) {
 
   copy.set_page_spread(DocumentLayout::PageSpread::kTwoUpOdd);
   EXPECT_TRUE(copy == options_);
-
-  options_.set_page_spread(DocumentLayout::PageSpread::kOneUp);
-  EXPECT_FALSE(copy == options_);
-
-  copy.set_page_spread(DocumentLayout::PageSpread::kOneUp);
-  EXPECT_TRUE(copy == options_);
 }
 
 TEST_F(DocumentLayoutOptionsTest, NotEquals) {
@@ -96,6 +110,53 @@ TEST_F(DocumentLayoutOptionsTest, NotEquals) {
   EXPECT_FALSE(copy != options_);
 }
 
+TEST_F(DocumentLayoutOptionsTest, ToValueDefault) {
+  base::Value value(options_.ToValue());
+
+  EXPECT_THAT(value, base::test::IsJson(R"({
+    "direction": 0,
+    "defaultPageOrientation": 0,
+    "twoUpViewEnabled": false,
+  })"));
+}
+
+TEST_F(DocumentLayoutOptionsTest, ToValueModified) {
+  options_.set_direction(base::i18n::LEFT_TO_RIGHT);
+  options_.RotatePagesClockwise();
+  options_.set_page_spread(DocumentLayout::PageSpread::kTwoUpOdd);
+  base::Value value(options_.ToValue());
+
+  EXPECT_THAT(value, base::test::IsJson(R"({
+    "direction": 2,
+    "defaultPageOrientation": 1,
+    "twoUpViewEnabled": true,
+  })"));
+}
+
+TEST_F(DocumentLayoutOptionsTest, FromValueDefault) {
+  base::Value value = base::test::ParseJson(R"({
+    "direction": 0,
+    "defaultPageOrientation": 0,
+    "twoUpViewEnabled": false,
+  })");
+  options_.FromValue(value.GetDict());
+
+  EXPECT_EQ(options_, DocumentLayout::Options());
+}
+
+TEST_F(DocumentLayoutOptionsTest, FromValueModified) {
+  base::Value value = base::test::ParseJson(R"({
+    "direction": 2,
+    "defaultPageOrientation": 1,
+    "twoUpViewEnabled": true,
+  })");
+  options_.FromValue(value.GetDict());
+
+  EXPECT_EQ(options_.direction(), base::i18n::LEFT_TO_RIGHT);
+  EXPECT_EQ(options_.default_page_orientation(), PageOrientation::kClockwise90);
+  EXPECT_EQ(options_.page_spread(), DocumentLayout::PageSpread::kTwoUpOdd);
+}
+
 TEST_F(DocumentLayoutOptionsTest, RotatePagesClockwise) {
   options_.RotatePagesClockwise();
   EXPECT_EQ(options_.default_page_orientation(), PageOrientation::kClockwise90);
@@ -223,6 +284,13 @@ TEST_F(DocumentLayoutTest, ComputeLayoutOneUp) {
   EXPECT_EQ(gfx::Size(320, 2231), layout_.size());
 }
 
+TEST_F(DocumentLayoutTest, ComputeLayoutOneUpWithNoPages) {
+  SetPageSpread(DocumentLayout::PageSpread::kOneUp);
+
+  layout_.ComputeLayout({});
+  ASSERT_EQ(0u, layout_.page_count());
+}
+
 TEST_F(DocumentLayoutTest, DirtySetOnLayoutInputChangeOneUp) {
   SetPageSpread(DocumentLayout::PageSpread::kOneUp);
 
@@ -295,6 +363,13 @@ TEST_F(DocumentLayoutTest, ComputeLayoutTwoUpOdd) {
   EXPECT_EQ(gfx::Size(800, 1300), layout_.size());
 }
 
+TEST_F(DocumentLayoutTest, ComputeLayoutTwoUpOddWithNoPages) {
+  SetPageSpread(DocumentLayout::PageSpread::kTwoUpOdd);
+
+  layout_.ComputeLayout({});
+  ASSERT_EQ(0u, layout_.page_count());
+}
+
 TEST_F(DocumentLayoutTest, DirtySetOnLayoutInputChangeTwoUpOdd) {
   SetPageSpread(DocumentLayout::PageSpread::kTwoUpOdd);