blob: f4095851f85a50de871bd6ba1fc2f26af0e5d1e8 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/core/style/border_value.h"
#include <limits.h>
#include "testing/gtest/include/gtest/gtest.h"
namespace blink {
TEST(BorderValueTest, BorderValueWidth) {
const float kTolerance = 1.0f / kBorderWidthDenominator;
BorderValue border;
border.SetWidth(1.0f);
EXPECT_FLOAT_EQ(1.0f, border.Width());
border.SetWidth(1.25f);
EXPECT_FLOAT_EQ(1.25f, border.Width());
border.SetWidth(1.1f);
EXPECT_NEAR(border.Width(), 1.1f, kTolerance);
border.SetWidth(1.33f);
EXPECT_NEAR(border.Width(), 1.33f, kTolerance);
border.SetWidth(1.3333f);
EXPECT_NEAR(border.Width(), 1.3333f, kTolerance);
border.SetWidth(1.53434f);
EXPECT_NEAR(border.Width(), 1.53434f, kTolerance);
border.SetWidth(345634);
EXPECT_NEAR(border.Width(), 345634.0f, kTolerance);
border.SetWidth(345634.12335f);
EXPECT_NEAR(border.Width(), 345634.12335f, kTolerance);
border.SetWidth(0);
EXPECT_EQ(0, border.Width());
border.SetWidth(1);
EXPECT_EQ(1, border.Width());
border.SetWidth(100);
EXPECT_EQ(100, border.Width());
border.SetWidth(1000);
EXPECT_EQ(1000, border.Width());
border.SetWidth(10000);
EXPECT_EQ(10000, border.Width());
border.SetWidth(kMaxForBorderWidth / 2);
EXPECT_EQ(kMaxForBorderWidth / 2, border.Width());
border.SetWidth(kMaxForBorderWidth - 1);
EXPECT_EQ(kMaxForBorderWidth - 1, border.Width());
border.SetWidth(kMaxForBorderWidth);
EXPECT_EQ(kMaxForBorderWidth, border.Width());
border.SetWidth(kMaxForBorderWidth + 1);
EXPECT_EQ(kMaxForBorderWidth, border.Width());
border.SetWidth(INT_MAX / 2);
EXPECT_EQ(kMaxForBorderWidth, border.Width());
border.SetWidth(INT_MAX);
EXPECT_EQ(kMaxForBorderWidth, border.Width());
}
TEST(BorderValueTest, BorderValueColor) {
BorderValue border1 =
BorderValue(EBorderStyle::kSolid, StyleColor::CurrentColor(), 5);
EXPECT_EQ(border1.ColorIsCurrentColor(), true);
BorderValue border2 =
BorderValue(EBorderStyle::kSolid, StyleColor(Color(128, 0, 0)), 5);
EXPECT_EQ(border2.ColorIsCurrentColor(), false);
}
} // namespace blink