#include "third_party/blink/renderer/core/layout/inline/line_breaker.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h"
#include "third_party/blink/renderer/core/layout/base_layout_algorithm_test.h"
#include "third_party/blink/renderer/core/layout/box_fragment_builder.h"
#include "third_party/blink/renderer/core/layout/constraint_space_builder.h"
#include "third_party/blink/renderer/core/layout/inline/inline_break_token.h"
#include "third_party/blink/renderer/core/layout/inline/inline_cursor.h"
#include "third_party/blink/renderer/core/layout/inline/inline_item_result_ruby_column.h"
#include "third_party/blink/renderer/core/layout/inline/inline_node.h"
#include "third_party/blink/renderer/core/layout/inline/line_info.h"
#include "third_party/blink/renderer/core/layout/layout_block_flow.h"
#include "third_party/blink/renderer/core/layout/positioned_float.h"
#include "third_party/blink/renderer/core/layout/unpositioned_float.h"
#include "third_party/blink/renderer/platform/fonts/shaping/shape_result_view.h"
#include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
namespace blink {
String ToString(InlineItemResults line, InlineNode node) { … }
class LineBreakerTest : public RenderingTest { … };
namespace {
TEST_F(LineBreakerTest, FitWithEpsilon) { … }
TEST_F(LineBreakerTest, SingleNode) { … }
TEST_F(LineBreakerTest, TextCombineCloseTag) { … }
TEST_F(LineBreakerTest, TextCombineBreak) { … }
TEST_F(LineBreakerTest, TextCombineNoBreak) { … }
TEST_F(LineBreakerTest, TextCombineNoBreakWithSpace) { … }
TEST_F(LineBreakerTest, OverflowWord) { … }
TEST_F(LineBreakerTest, OverflowTab) { … }
TEST_F(LineBreakerTest, OverflowTabBreakWord) { … }
TEST_F(LineBreakerTest, OverflowAtomicInline) { … }
TEST_F(LineBreakerTest, OverflowMargin) { … }
TEST_F(LineBreakerTest, OverflowAfterSpacesAcrossElements) { … }
TEST_F(LineBreakerTest, WrapLastWord) { … }
TEST_F(LineBreakerTest, WrapLetterSpacing) { … }
TEST_F(LineBreakerTest, BoundaryInWord) { … }
TEST_F(LineBreakerTest, BoundaryInFirstWord) { … }
TEST_F(LineBreakerTest, IdeographicTrailingSpaces) { … }
struct WhitespaceStateTestData { … } whitespace_state_test_data[] = …;
std::ostream& operator<<(std::ostream& os,
const WhitespaceStateTestData& data) { … }
class WhitespaceStateTest
: public LineBreakerTest,
public testing::WithParamInterface<WhitespaceStateTestData> { … };
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(WhitespaceStateTest, WhitespaceState) { … }
struct TrailingSpaceWidthTestData { … } trailing_space_width_test_data[] = …;
class TrailingSpaceWidthTest
: public LineBreakerTest,
public testing::WithParamInterface<TrailingSpaceWidthTestData> { … };
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(TrailingSpaceWidthTest, TrailingSpaceWidth) { … }
TEST_F(LineBreakerTest, FullyCollapsedSpaces) { … }
TEST_F(LineBreakerTest, TrailingCollapsedSpaces) { … }
TEST_F(LineBreakerTest, SplitTextZero) { … }
TEST_F(LineBreakerTest, ForcedBreakFollowedByCloseTag) { … }
TEST_F(LineBreakerTest, TableCellWidthCalculationQuirkOutOfFlow) { … }
TEST_F(LineBreakerTest, BoxDecorationBreakCloneWithoutBoxDecorations) { … }
TEST_F(LineBreakerTest, RewindPositionedFloat) { … }
TEST_F(LineBreakerTest, RewindRubyColumn) { … }
TEST_F(LineBreakerTest, SplitTextIntoSegements) { … }
TEST_F(LineBreakerTest, SplitTextIntoSegementsCrash) { … }
TEST_F(LineBreakerTest, GetOverhangCrash) { … }
TEST_F(LineBreakerTest, IdeographicSpaceBeforeEndBracket) { … }
TEST_F(LineBreakerTest, BreakAt) { … }
TEST_F(LineBreakerTest, BreakAtTrailingSpaces) { … }
TEST_F(LineBreakerTest, BreakAtTrailingSpacesAfterAtomicInline) { … }
TEST_F(LineBreakerTest, WideContentInRuby) { … }
TEST_F(LineBreakerTest, SetInputRange) { … }
TEST_F(LineBreakerTest, CreateSubLineInfoAvailableWidth) { … }
TEST_F(LineBreakerTest, OverflowingContinuationRuby) { … }
TEST_F(LineBreakerTest, OverflowingContinuationRuby2) { … }
TEST_F(LineBreakerTest, MinMaxWithAtomicInlineInRuby) { … }
TEST_F(LineBreakerTest, RemoveTrailingCollapsibleSpace) { … }
TEST_F(LineBreakerTest, MinMaxWithEmptyRubyBase) { … }
struct CanBreakInsideTestData { … } can_break_inside_test_data[] = …;
class CanBreakInsideTest
: public LineBreakerTest,
public testing::WithParamInterface<CanBreakInsideTestData> { … };
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(CanBreakInsideTest, Data) { … }
}
}