#include "third_party/blink/renderer/core/editing/layout_selection.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_shadow_root_init.h"
#include "third_party/blink/renderer/core/editing/frame_selection.h"
#include "third_party/blink/renderer/core/editing/selection_template.h"
#include "third_party/blink/renderer/core/editing/testing/editing_test_base.h"
#include "third_party/blink/renderer/core/html/html_style_element.h"
#include "third_party/blink/renderer/core/layout/inline/inline_cursor.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/layout/layout_text.h"
#include "third_party/blink/renderer/core/layout/layout_text_fragment.h"
#include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
static LayoutTextFragment* FirstLetterPartFor(
const LayoutObject* layout_object) { … }
class LayoutSelectionTestBase : public EditingTestBase { … };
class LayoutSelectionTest : public LayoutSelectionTestBase { … };
TEST_F(LayoutSelectionTest, TraverseLayoutObject) { … }
TEST_F(LayoutSelectionTest, TraverseLayoutObjectTruncateVisibilityHidden) { … }
TEST_F(LayoutSelectionTest, TraverseLayoutObjectBRs) { … }
TEST_F(LayoutSelectionTest, TraverseLayoutObjectListStyleImage) { … }
TEST_F(LayoutSelectionTest, TraverseLayoutObjectCrossingShadowBoundary) { … }
TEST_F(LayoutSelectionTest,
InvalidationShouldNotChangeRefferedLayoutObjectState) { … }
TEST_F(LayoutSelectionTest, TraverseLayoutObjectLineWrap) { … }
TEST_F(LayoutSelectionTest, FirstLetter) { … }
TEST_F(LayoutSelectionTest, FirstLetterMultiple) { … }
TEST_F(LayoutSelectionTest, FirstLetterClearSeletion) { … }
TEST_F(LayoutSelectionTest, FirstLetterUpdateSeletion) { … }
TEST_F(LayoutSelectionTest, CommitAppearanceIfNeededNotCrash) { … }
TEST_F(LayoutSelectionTest, SelectImage) { … }
TEST_F(LayoutSelectionTest, MoveOnSameNode_Start) { … }
TEST_F(LayoutSelectionTest, MoveOnSameNode_End) { … }
TEST_F(LayoutSelectionTest, MoveOnSameNode_StartAndEnd) { … }
TEST_F(LayoutSelectionTest, MoveOnSameNode_StartAndEnd_Collapse) { … }
TEST_F(LayoutSelectionTest, ContentEditableButton) { … }
TEST_F(LayoutSelectionTest, ClearSelection) { … }
TEST_F(LayoutSelectionTest, SVG) { … }
TEST_F(LayoutSelectionTest, SVGAncestor) { … }
TEST_F(LayoutSelectionTest, Embed) { … }
TEST_F(LayoutSelectionTest, Ruby) { … }
TEST_F(LayoutSelectionTest, ClearByRemoveNode) { … }
TEST_F(LayoutSelectionTest, ClearByRemoveLayoutObject) { … }
TEST_F(LayoutSelectionTest, ClearBySlotChange) { … }
TEST_F(LayoutSelectionTest, MoveNode) { … }
TEST_F(LayoutSelectionTest, InvalidateSlot) { … }
class NGLayoutSelectionTest
: public LayoutSelectionTestBase,
private ScopedPaintUnderInvalidationCheckingForTest { … };
std::ostream& operator<<(std::ostream& ostream,
const LayoutSelectionStatus& status) { … }
TEST_F(NGLayoutSelectionTest, SelectOnOneText) { … }
TEST_F(NGLayoutSelectionTest, FirstLetterInAnotherBlockFlow) { … }
TEST_F(NGLayoutSelectionTest, TwoNGBlockFlows) { … }
TEST_F(NGLayoutSelectionTest, StartAndEndState) { … }
TEST_F(NGLayoutSelectionTest, UnpaintedStartAndEndState) { … }
TEST_F(NGLayoutSelectionTest, StartAndEndMultilineState) { … }
TEST_F(NGLayoutSelectionTest, BeforeStartAndAfterEndMultilineState) { … }
TEST_F(NGLayoutSelectionTest, MixedBlockFlowsAsSibling) { … }
TEST_F(NGLayoutSelectionTest, MixedBlockFlowsAnscestor) { … }
TEST_F(NGLayoutSelectionTest, MixedBlockFlowsDecendant) { … }
TEST_F(NGLayoutSelectionTest, LineBreakBasic) { … }
TEST_F(NGLayoutSelectionTest, LineBreakInlineBlock) { … }
TEST_F(NGLayoutSelectionTest, LineBreakImage) { … }
TEST_F(NGLayoutSelectionTest, BRStatus) { … }
TEST_F(NGLayoutSelectionTest, WBRStatus) { … }
TEST_F(NGLayoutSelectionTest, SoftHyphen0to1) { … }
TEST_F(NGLayoutSelectionTest, SoftHyphen0to4) { … }
TEST_F(NGLayoutSelectionTest, SoftHyphen1to5) { … }
}