Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| 11 * documentation and/or other materials provided with the distribution. | 11 * documentation and/or other materials provided with the distribution. |
| 12 * | 12 * |
| 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y | 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y |
| 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| 15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y | 16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y |
| 17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N | 19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N |
| 20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| 22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 23 */ | 23 */ |
| 24 | 24 |
| 25 #include "config.h" | 25 #include "config.h" |
| 26 | 26 |
| 27 #include "core/platform/graphics/Region.h" | 27 #include "platform/graphics/Region.h" |
| 28 | 28 |
| 29 #include <gtest/gtest.h> | 29 #include <gtest/gtest.h> |
| 30 | 30 |
| 31 using namespace WebCore; | 31 using namespace WebCore; |
| 32 | 32 |
| 33 namespace { | 33 namespace { |
| 34 | 34 |
| 35 #define TEST_INSIDE_RECT(r, x, y, w, h) \ | 35 #define TEST_INSIDE_RECT(r, x, y, w, h) \ |
| 36 EXPECT_TRUE(r.contains(IntPoint(x, y))); \ | 36 EXPECT_TRUE(r.contains(IntPoint(x, y))); \ |
| 37 EXPECT_TRUE(r.contains(IntPoint(x + w - 1, y))); \ | 37 EXPECT_TRUE(r.contains(IntPoint(x + w - 1, y))); \ |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 52 EXPECT_FALSE(r.contains(IntPoint(x + w, y + h - 1))); \ | 52 EXPECT_FALSE(r.contains(IntPoint(x + w, y + h - 1))); \ |
| 53 | 53 |
| 54 #define TEST_TOP_OF_RECT(r, x, y, w, h) \ | 54 #define TEST_TOP_OF_RECT(r, x, y, w, h) \ |
| 55 EXPECT_FALSE(r.contains(IntPoint(x, y - 1))); \ | 55 EXPECT_FALSE(r.contains(IntPoint(x, y - 1))); \ |
| 56 EXPECT_FALSE(r.contains(IntPoint(x + w - 1, y - 1))); \ | 56 EXPECT_FALSE(r.contains(IntPoint(x + w - 1, y - 1))); \ |
| 57 | 57 |
| 58 #define TEST_BOTTOM_OF_RECT(r, x, y, w, h) \ | 58 #define TEST_BOTTOM_OF_RECT(r, x, y, w, h) \ |
| 59 EXPECT_FALSE(r.contains(IntPoint(x, y + h))); \ | 59 EXPECT_FALSE(r.contains(IntPoint(x, y + h))); \ |
| 60 EXPECT_FALSE(r.contains(IntPoint(x + w - 1, y + h))); \ | 60 EXPECT_FALSE(r.contains(IntPoint(x + w - 1, y + h))); \ |
| 61 | 61 |
| 62 TEST(RegionTest, containsPoint) | 62 TEST(RegionTest, containsPoint) |
|
abarth-chromium
2013/10/13 15:19:51
This file should move to platform/geometry/RegionT
| |
| 63 { | 63 { |
| 64 Region r; | 64 Region r; |
| 65 | 65 |
| 66 EXPECT_FALSE(r.contains(IntPoint(0, 0))); | 66 EXPECT_FALSE(r.contains(IntPoint(0, 0))); |
| 67 | 67 |
| 68 r.unite(IntRect(35, 35, 1, 1)); | 68 r.unite(IntRect(35, 35, 1, 1)); |
| 69 TEST_INSIDE_RECT(r, 35, 35, 1, 1); | 69 TEST_INSIDE_RECT(r, 35, 35, 1, 1); |
| 70 TEST_LEFT_OF_RECT(r, 35, 35, 1, 1); | 70 TEST_LEFT_OF_RECT(r, 35, 35, 1, 1); |
| 71 TEST_RIGHT_OF_RECT(r, 35, 35, 1, 1); | 71 TEST_RIGHT_OF_RECT(r, 35, 35, 1, 1); |
| 72 TEST_TOP_OF_RECT(r, 35, 35, 1, 1); | 72 TEST_TOP_OF_RECT(r, 35, 35, 1, 1); |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 385 EXPECT_EQ(r, r2); | 385 EXPECT_EQ(r, r2); |
| 386 | 386 |
| 387 // A complex region uniting a containing rect gives back the containing rect . | 387 // A complex region uniting a containing rect gives back the containing rect . |
| 388 r = IntRect(0, 0, 50, 50); | 388 r = IntRect(0, 0, 50, 50); |
| 389 r.unite(IntRect(100, 0, 50, 50)); | 389 r.unite(IntRect(100, 0, 50, 50)); |
| 390 r. unite(IntRect(0, 0, 500, 500)); | 390 r. unite(IntRect(0, 0, 500, 500)); |
| 391 EXPECT_EQ(Region(IntRect(0, 0, 500, 500)), r); | 391 EXPECT_EQ(Region(IntRect(0, 0, 500, 500)), r); |
| 392 } | 392 } |
| 393 | 393 |
| 394 } // namespace | 394 } // namespace |
| OLD | NEW |