blob: 27b3479e1a10a5503beea9e20cce8717bcfacebe [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// 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/css/css_ratio_value.h"
#include "third_party/blink/renderer/core/css/css_numeric_literal_value.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
namespace blink {
using CSSRatioValue = cssvalue::CSSRatioValue;
namespace {
CSSPrimitiveValue* Number(double v) {
return CSSNumericLiteralValue::Create(v,
CSSPrimitiveValue::UnitType::kNumber);
}
} // namespace
TEST(CSSRatioValueTest, First_Second) {
CSSPrimitiveValue* first = Number(1.0);
CSSPrimitiveValue* second = Number(2.0);
EXPECT_EQ(&MakeGarbageCollected<CSSRatioValue>(*first, *second)->First(),
first);
EXPECT_EQ(&MakeGarbageCollected<CSSRatioValue>(*first, *second)->Second(),
second);
}
TEST(CSSRatioValueTest, CssText) {
EXPECT_EQ("1 / 2",
MakeGarbageCollected<CSSRatioValue>(*Number(1.0), *Number(2.0))
->CssText());
}
TEST(CSSRatioValueTest, Equals) {
EXPECT_EQ(*MakeGarbageCollected<CSSRatioValue>(*Number(1.0), *Number(2.0)),
*MakeGarbageCollected<CSSRatioValue>(*Number(1.0), *Number(2.0)));
EXPECT_NE(*MakeGarbageCollected<CSSRatioValue>(*Number(1.0), *Number(2.0)),
*MakeGarbageCollected<CSSRatioValue>(*Number(1.0), *Number(3.0)));
EXPECT_NE(*MakeGarbageCollected<CSSRatioValue>(*Number(1.0), *Number(2.0)),
*MakeGarbageCollected<CSSRatioValue>(*Number(3.0), *Number(2.0)));
}
} // namespace blink