page_number_unittest.cc 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Copyright (c) 2006-2008 The Chromium 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. #include "printing/page_number.h"
  5. #include "printing/print_settings.h"
  6. #include "testing/gmock/include/gmock/gmock.h"
  7. #include "testing/gtest/include/gtest/gtest.h"
  8. TEST(PageNumberTest, Count) {
  9. printing::PageRanges ranges;
  10. printing::PageNumber page;
  11. EXPECT_EQ(printing::PageNumber::npos(), page);
  12. page.Init(ranges, 3);
  13. EXPECT_EQ(0u, page.ToUint());
  14. EXPECT_NE(printing::PageNumber::npos(), page);
  15. ++page;
  16. EXPECT_EQ(1u, page.ToUint());
  17. EXPECT_NE(printing::PageNumber::npos(), page);
  18. printing::PageNumber page_copy(page);
  19. EXPECT_EQ(1u, page_copy.ToUint());
  20. EXPECT_EQ(1u, page.ToUint());
  21. ++page;
  22. EXPECT_EQ(1u, page_copy.ToUint());
  23. EXPECT_EQ(2u, page.ToUint());
  24. ++page;
  25. EXPECT_EQ(printing::PageNumber::npos(), page);
  26. ++page;
  27. EXPECT_EQ(printing::PageNumber::npos(), page);
  28. }
  29. TEST(PageNumberTest, GetPages) {
  30. printing::PageRanges ranges = {{5, 6}, {0, 2}, {9, 9}, {11, 10000}};
  31. EXPECT_THAT(printing::PageNumber::GetPages(ranges, 13),
  32. testing::ElementsAre(0, 1, 2, 5, 6, 9, 11, 12));
  33. EXPECT_THAT(printing::PageNumber::GetPages({}, 5),
  34. testing::ElementsAre(0, 1, 2, 3, 4));
  35. }
  36. TEST(PageNumberTest, GetPagesOutOfRange) {
  37. printing::PageRanges ranges = {{7, 8}};
  38. EXPECT_THAT(printing::PageNumber::GetPages(ranges, 7), testing::IsEmpty());
  39. }