b0d0b19f70be0ba0a3541cf0577f7e845e828b7b
[WebKit-https.git] / Tools / TestWebKitAPI / Tests / WebCore / GridPosition.cpp
1 /*
2  * Copyright (C) 2017 Igalia, S.L. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #include "config.h"
27
28 #include <WebCore/GridPosition.h>
29
30 namespace TestWebKitAPI {
31
32 TEST(GridPositionTest, GridPositionLimits)
33 {
34 #if ENABLE(CSS_GRID_LAYOUT)
35
36     WebCore::GridPosition gridPosition;
37
38     gridPosition.setExplicitPosition(999999, "");
39     EXPECT_EQ(gridPosition.integerPosition(), 999999);
40     gridPosition.setExplicitPosition(1000000, "");
41     EXPECT_EQ(gridPosition.integerPosition(), 1000000);
42     gridPosition.setExplicitPosition(1000001, "");
43     EXPECT_EQ(gridPosition.integerPosition(), 1000000);
44     gridPosition.setExplicitPosition(INT_MAX, "");
45     EXPECT_EQ(gridPosition.integerPosition(), 1000000);
46     gridPosition.setExplicitPosition(-999999, "");
47     EXPECT_EQ(gridPosition.integerPosition(), -999999);
48     gridPosition.setExplicitPosition(-1000000, "");
49     EXPECT_EQ(gridPosition.integerPosition(), -1000000);
50     gridPosition.setExplicitPosition(-1000001, "");
51     EXPECT_EQ(gridPosition.integerPosition(), -1000000);
52     gridPosition.setExplicitPosition(INT_MIN, "");
53     EXPECT_EQ(gridPosition.integerPosition(), -1000000);
54
55     gridPosition.setSpanPosition(999999, "");
56     EXPECT_EQ(gridPosition.spanPosition(), 999999);
57     gridPosition.setSpanPosition(1000000, "");
58     EXPECT_EQ(gridPosition.spanPosition(), 1000000);
59     gridPosition.setSpanPosition(1000001, "");
60     EXPECT_EQ(gridPosition.spanPosition(), 1000000);
61     gridPosition.setSpanPosition(INT_MAX, "");
62     EXPECT_EQ(gridPosition.spanPosition(), 1000000);
63     gridPosition.setSpanPosition(-999999, "");
64     EXPECT_EQ(gridPosition.spanPosition(), -999999);
65     gridPosition.setSpanPosition(-1000000, "");
66     EXPECT_EQ(gridPosition.spanPosition(), -1000000);
67     gridPosition.setSpanPosition(-1000001, "");
68     EXPECT_EQ(gridPosition.spanPosition(), -1000000);
69     gridPosition.setSpanPosition(INT_MIN, "");
70     EXPECT_EQ(gridPosition.spanPosition(), -1000000);
71
72 #endif // ENABLE(CSS_GRID_LAYOUT)
73 }
74
75 } // namespace TestWebKitAPI