blob: 13b9ae261f883c1f914de28ff56bd6a724776f9a [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 "core/editing/RenderedPosition.h"
#include "build/build_config.h"
#include "core/css/CSSStyleDeclaration.h"
#include "core/editing/VisiblePosition.h"
#include "core/editing/VisibleUnits.h"
#include "core/editing/testing/EditingTestBase.h"
namespace blink {
class RenderedPositionTest : public EditingTestBase {};
#if defined(OS_ANDROID)
#define MAYBE_IsVisible DISABLED_IsVisible
#else
#define MAYBE_IsVisible IsVisible
#endif
TEST_F(RenderedPositionTest, MAYBE_IsVisible) {
SetBodyContent(
"<input id=target width=100 value='test test test test test tes tes test'"
" style='will-change: transform; font-size:40pt;'/>");
Element* target = GetDocument().getElementById("target");
Position visible_position(
target->GetLayoutObject()->SlowFirstChild()->SlowFirstChild()->GetNode(),
0);
RenderedPosition rendered_visible_position(
CreateVisiblePosition(visible_position));
EXPECT_TRUE(rendered_visible_position.IsVisible(true));
Position hidden_position(
target->GetLayoutObject()->SlowFirstChild()->SlowFirstChild()->GetNode(),
32);
RenderedPosition rendered_hidden_position(
CreateVisiblePosition(hidden_position));
EXPECT_FALSE(rendered_hidden_position.IsVisible(true));
}
TEST_F(RenderedPositionTest, GetSamplePointForVisibility) {
LayoutPoint top(-1, 10);
LayoutPoint bottom(20, 10);
EXPECT_EQ(LayoutPoint(19, 10),
RenderedPosition::GetSamplePointForVisibility(top, bottom));
}
#undef MAYBE_IsVisible
} // namespace blink