1 // Copyright (c) 2011 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 5 #include "printing/page_range.h" 6 #include "testing/gtest/include/gtest/gtest.h" 7 8 TEST(PageRangeTest, RangeMerge) { 9 printing::PageRanges ranges; 10 printing::PageRange range; 11 range.from = 1; 12 range.to = 3; 13 ranges.push_back(range); 14 range.from = 10; 15 range.to = 12; 16 ranges.push_back(range); 17 range.from = 2; 18 range.to = 5; 19 ranges.push_back(range); 20 std::vector<int> pages(printing::PageRange::GetPages(ranges)); 21 ASSERT_EQ(8U, pages.size()); 22 EXPECT_EQ(1, pages[0]); 23 EXPECT_EQ(2, pages[1]); 24 EXPECT_EQ(3, pages[2]); 25 EXPECT_EQ(4, pages[3]); 26 EXPECT_EQ(5, pages[4]); 27 EXPECT_EQ(10, pages[5]); 28 EXPECT_EQ(11, pages[6]); 29 EXPECT_EQ(12, pages[7]); 30 } 31 32 TEST(PageRangeTest, Empty) { 33 printing::PageRanges ranges; 34 std::vector<int> pages(printing::PageRange::GetPages(ranges)); 35 EXPECT_TRUE(pages.empty()); 36 } 37 38 TEST(PageRangeTest, Huge) { 39 printing::PageRanges ranges; 40 printing::PageRange range; 41 range.from = 1; 42 range.to = 2000000000; 43 ranges.push_back(range); 44 std::vector<int> pages(printing::PageRange::GetPages(ranges)); 45 EXPECT_FALSE(pages.empty()); 46 } 47