# Copyright 2016 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.

import("//third_party/WebKit/Source/core/core.gni")

blink_core_sources("editing") {
  split_count = 5
  sources = [
    "CaretDisplayItemClient.cpp",
    "CaretDisplayItemClient.h",
    "CompositionUnderline.cpp",
    "CompositionUnderline.h",
    "CompositionUnderlineVectorBuilder.cpp",
    "CompositionUnderlineVectorBuilder.h",
    "DOMSelection.cpp",
    "DOMSelection.h",
    "DragCaret.cpp",
    "DragCaret.h",
    "EditingBehavior.cpp",
    "EditingBehavior.h",
    "EditingBehaviorTypes.h",
    "EditingBoundary.h",
    "EditingStrategy.cpp",
    "EditingStrategy.h",
    "EditingStyle.cpp",
    "EditingStyle.h",
    "EditingStyleUtilities.cpp",
    "EditingStyleUtilities.h",
    "EditingUtilities.cpp",
    "EditingUtilities.h",
    "Editor.cpp",
    "Editor.h",
    "EditorKeyBindings.cpp",
    "EphemeralRange.cpp",
    "EphemeralRange.h",
    "FindInPageCoordinates.cpp",
    "FindInPageCoordinates.h",
    "FrameCaret.cpp",
    "FrameCaret.h",
    "FrameSelection.cpp",
    "FrameSelection.h",
    "GranularityStrategy.cpp",
    "GranularityStrategy.h",
    "InputMethodController.cpp",
    "InputMethodController.h",
    "LayoutSelection.cpp",
    "LayoutSelection.h",
    "PlainTextRange.cpp",
    "PlainTextRange.h",
    "Position.cpp",
    "Position.h",
    "PositionIterator.cpp",
    "PositionIterator.h",
    "PositionWithAffinity.cpp",
    "PositionWithAffinity.h",
    "RelocatablePosition.cpp",
    "RelocatablePosition.h",
    "RenderedPosition.cpp",
    "RenderedPosition.h",
    "SelectionAdjuster.cpp",
    "SelectionAdjuster.h",
    "SelectionController.cpp",
    "SelectionController.h",
    "SelectionEditor.cpp",
    "SelectionEditor.h",
    "SelectionModifier.cpp",
    "SelectionModifier.h",
    "SelectionModifierWord.cpp",
    "SelectionStrategy.h",
    "SelectionTemplate.cpp",
    "SelectionTemplate.h",
    "SelectionType.h",
    "SurroundingText.cpp",
    "SurroundingText.h",
    "TextAffinity.cpp",
    "TextAffinity.h",
    "TextGranularity.h",
    "VisiblePosition.cpp",
    "VisiblePosition.h",
    "VisibleSelection.cpp",
    "VisibleSelection.h",
    "VisibleUnits.cpp",
    "VisibleUnits.h",
    "WritingDirection.h",
    "commands/AppendNodeCommand.cpp",
    "commands/AppendNodeCommand.h",
    "commands/ApplyBlockElementCommand.cpp",
    "commands/ApplyBlockElementCommand.h",
    "commands/ApplyStyleCommand.cpp",
    "commands/ApplyStyleCommand.h",
    "commands/BreakBlockquoteCommand.cpp",
    "commands/BreakBlockquoteCommand.h",
    "commands/CompositeEditCommand.cpp",
    "commands/CompositeEditCommand.h",
    "commands/CreateLinkCommand.cpp",
    "commands/CreateLinkCommand.h",
    "commands/DeleteFromTextNodeCommand.cpp",
    "commands/DeleteFromTextNodeCommand.h",
    "commands/DeleteSelectionCommand.cpp",
    "commands/DeleteSelectionCommand.h",
    "commands/DocumentExecCommand.cpp",
    "commands/DragAndDropCommand.cpp",
    "commands/DragAndDropCommand.h",
    "commands/EditCommand.cpp",
    "commands/EditCommand.h",
    "commands/EditingState.cpp",
    "commands/EditingState.h",
    "commands/EditorCommand.cpp",
    "commands/EditorCommandNames.h",
    "commands/FormatBlockCommand.cpp",
    "commands/FormatBlockCommand.h",
    "commands/IndentOutdentCommand.cpp",
    "commands/IndentOutdentCommand.h",
    "commands/InsertIncrementalTextCommand.cpp",
    "commands/InsertIncrementalTextCommand.h",
    "commands/InsertIntoTextNodeCommand.cpp",
    "commands/InsertIntoTextNodeCommand.h",
    "commands/InsertLineBreakCommand.cpp",
    "commands/InsertLineBreakCommand.h",
    "commands/InsertListCommand.cpp",
    "commands/InsertListCommand.h",
    "commands/InsertNodeBeforeCommand.cpp",
    "commands/InsertNodeBeforeCommand.h",
    "commands/InsertParagraphSeparatorCommand.cpp",
    "commands/InsertParagraphSeparatorCommand.h",
    "commands/InsertTextCommand.cpp",
    "commands/InsertTextCommand.h",
    "commands/MergeIdenticalElementsCommand.cpp",
    "commands/MergeIdenticalElementsCommand.h",
    "commands/RemoveCSSPropertyCommand.cpp",
    "commands/RemoveCSSPropertyCommand.h",
    "commands/RemoveFormatCommand.cpp",
    "commands/RemoveFormatCommand.h",
    "commands/RemoveNodeCommand.cpp",
    "commands/RemoveNodeCommand.h",
    "commands/RemoveNodePreservingChildrenCommand.cpp",
    "commands/RemoveNodePreservingChildrenCommand.h",
    "commands/ReplaceNodeWithSpanCommand.cpp",
    "commands/ReplaceNodeWithSpanCommand.h",
    "commands/ReplaceSelectionCommand.cpp",
    "commands/ReplaceSelectionCommand.h",
    "commands/SetCharacterDataCommand.cpp",
    "commands/SetCharacterDataCommand.h",
    "commands/SetNodeAttributeCommand.cpp",
    "commands/SetNodeAttributeCommand.h",
    "commands/SimplifyMarkupCommand.cpp",
    "commands/SimplifyMarkupCommand.h",
    "commands/SmartReplace.h",
    "commands/SmartReplaceICU.cpp",
    "commands/SplitElementCommand.cpp",
    "commands/SplitElementCommand.h",
    "commands/SplitTextNodeCommand.cpp",
    "commands/SplitTextNodeCommand.h",
    "commands/SplitTextNodeContainingElementCommand.cpp",
    "commands/SplitTextNodeContainingElementCommand.h",
    "commands/TypingCommand.cpp",
    "commands/TypingCommand.h",
    "commands/UndoStack.cpp",
    "commands/UndoStack.h",
    "commands/UndoStep.cpp",
    "commands/UndoStep.h",
    "commands/UnlinkCommand.cpp",
    "commands/UnlinkCommand.h",
    "commands/WrapContentsInDummySpanCommand.cpp",
    "commands/WrapContentsInDummySpanCommand.h",
    "iterators/BackwardsCharacterIterator.cpp",
    "iterators/BackwardsCharacterIterator.h",
    "iterators/BackwardsTextBuffer.cpp",
    "iterators/BackwardsTextBuffer.h",
    "iterators/BitStack.cpp",
    "iterators/BitStack.h",
    "iterators/CharacterIterator.cpp",
    "iterators/CharacterIterator.h",
    "iterators/ForwardsTextBuffer.cpp",
    "iterators/ForwardsTextBuffer.h",
    "iterators/FullyClippedStateStack.cpp",
    "iterators/FullyClippedStateStack.h",
    "iterators/SearchBuffer.cpp",
    "iterators/SearchBuffer.h",
    "iterators/SimplifiedBackwardsTextIterator.cpp",
    "iterators/SimplifiedBackwardsTextIterator.h",
    "iterators/TextBufferBase.cpp",
    "iterators/TextBufferBase.h",
    "iterators/TextIterator.cpp",
    "iterators/TextIterator.h",
    "iterators/TextIteratorBehavior.cpp",
    "iterators/TextIteratorBehavior.h",
    "iterators/TextIteratorTextNodeHandler.cpp",
    "iterators/TextIteratorTextNodeHandler.h",
    "iterators/TextIteratorTextState.cpp",
    "iterators/TextIteratorTextState.h",
    "iterators/TextSearcherICU.cpp",
    "iterators/TextSearcherICU.h",
    "markers/CompositionMarker.cpp",
    "markers/CompositionMarker.h",
    "markers/CompositionMarkerListImpl.cpp",
    "markers/CompositionMarkerListImpl.h",
    "markers/DocumentMarker.cpp",
    "markers/DocumentMarker.h",
    "markers/DocumentMarkerController.cpp",
    "markers/DocumentMarkerController.h",
    "markers/DocumentMarkerList.cpp",
    "markers/DocumentMarkerList.h",
    "markers/DocumentMarkerListEditor.cpp",
    "markers/DocumentMarkerListEditor.h",
    "markers/GrammarMarkerListImpl.cpp",
    "markers/GrammarMarkerListImpl.h",
    "markers/SpellCheckMarkerListImpl.cpp",
    "markers/SpellCheckMarkerListImpl.h",
    "markers/SpellingMarkerListImpl.cpp",
    "markers/SpellingMarkerListImpl.h",
    "markers/TextMatchMarker.h",
    "markers/TextMatchMarkerListImpl.cpp",
    "markers/TextMatchMarkerListImpl.h",
    "serializers/HTMLInterchange.cpp",
    "serializers/HTMLInterchange.h",
    "serializers/MarkupAccumulator.cpp",
    "serializers/MarkupAccumulator.h",
    "serializers/MarkupFormatter.cpp",
    "serializers/MarkupFormatter.h",
    "serializers/Serialization.cpp",
    "serializers/Serialization.h",
    "serializers/StyledMarkupAccumulator.cpp",
    "serializers/StyledMarkupAccumulator.h",
    "serializers/StyledMarkupSerializer.cpp",
    "serializers/StyledMarkupSerializer.h",
    "serializers/TextOffset.cpp",
    "serializers/TextOffset.h",
    "spellcheck/ColdModeSpellCheckRequester.cpp",
    "spellcheck/ColdModeSpellCheckRequester.h",
    "spellcheck/HotModeSpellCheckRequester.cpp",
    "spellcheck/HotModeSpellCheckRequester.h",
    "spellcheck/IdleSpellCheckCallback.cpp",
    "spellcheck/IdleSpellCheckCallback.h",
    "spellcheck/SpellCheckRequester.cpp",
    "spellcheck/SpellCheckRequester.h",
    "spellcheck/SpellChecker.cpp",
    "spellcheck/SpellChecker.h",
    "spellcheck/SpellCheckerClient.h",
    "spellcheck/SpellCheckerClientImpl.cpp",
    "spellcheck/SpellCheckerClientImpl.h",
    "spellcheck/TextCheckerClientImpl.cpp",
    "spellcheck/TextCheckerClientImpl.h",
    "spellcheck/TextCheckingParagraph.cpp",
    "spellcheck/TextCheckingParagraph.h",
    "state_machines/BackspaceStateMachine.cpp",
    "state_machines/BackspaceStateMachine.h",
    "state_machines/BackwardCodePointStateMachine.cpp",
    "state_machines/BackwardCodePointStateMachine.h",
    "state_machines/BackwardGraphemeBoundaryStateMachine.cpp",
    "state_machines/BackwardGraphemeBoundaryStateMachine.h",
    "state_machines/ForwardCodePointStateMachine.cpp",
    "state_machines/ForwardCodePointStateMachine.h",
    "state_machines/ForwardGraphemeBoundaryStateMachine.cpp",
    "state_machines/ForwardGraphemeBoundaryStateMachine.h",
    "state_machines/StateMachineUtil.cpp",
    "state_machines/StateMachineUtil.h",
    "state_machines/TextSegmentationMachineState.cpp",
    "state_machines/TextSegmentationMachineState.h",
  ]

  if (is_mac) {
    sources += [ "commands/SmartReplaceCF.cpp" ]
  }

  configs += [
    # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    "//build/config/compiler:no_size_t_to_int_warning",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "CompositionUnderlineTest.cpp",
    "EditingCommandTest.cpp",
    "EditingStrategyTest.cpp",
    "EditingStyleTest.cpp",
    "EditingTestBase.cpp",
    "EditingTestBase.h",
    "EditingUtilitiesTest.cpp",
    "EditorTest.cpp",
    "EphemeralRangeTest.cpp",
    "FrameCaretTest.cpp",
    "FrameSelectionTest.cpp",
    "GranularityStrategyTest.cpp",
    "InputMethodControllerTest.cpp",
    "PositionIteratorTest.cpp",
    "PositionTest.cpp",
    "RelocatablePositionTest.cpp",
    "SelectionControllerTest.cpp",
    "SelectionTemplateTest.cpp",
    "SurroundingTextTest.cpp",
    "VisiblePositionTest.cpp",
    "VisibleSelectionTest.cpp",
    "VisibleUnitsTest.cpp",
    "commands/ApplyBlockElementCommandTest.cpp",
    "commands/ApplyStyleCommandTest.cpp",
    "commands/CompositeEditCommandTest.cpp",
    "commands/DeleteSelectionCommandTest.cpp",
    "commands/InsertIncrementalTextCommandTest.cpp",
    "commands/InsertListCommandTest.cpp",
    "commands/InsertTextCommandTest.cpp",
    "commands/ReplaceSelectionCommandTest.cpp",
    "commands/SetCharacterDataCommandTest.cpp",
    "commands/SplitTextNodeCommandTest.cpp",
    "commands/TypingCommandTest.cpp",
    "iterators/BackwardsTextBufferTest.cpp",
    "iterators/CharacterIteratorTest.cpp",
    "iterators/ForwardsTextBufferTest.cpp",
    "iterators/SearchBufferTest.cpp",
    "iterators/SimplifiedBackwardsTextIteratorTest.cpp",
    "iterators/TextIteratorTest.cpp",
    "iterators/TextSearcherICUTest.cpp",
    "markers/CompositionMarkerListImplTest.cpp",
    "markers/CompositionMarkerTest.cpp",
    "markers/DocumentMarkerControllerTest.cpp",
    "markers/DocumentMarkerListEditorTest.cpp",
    "markers/DocumentMarkerTest.cpp",
    "markers/GrammarMarkerListImplTest.cpp",
    "markers/SpellingMarkerListImplTest.cpp",
    "markers/TextMatchMarkerListImplTest.cpp",
    "serializers/StyledMarkupSerializerTest.cpp",
    "spellcheck/IdleSpellCheckCallbackTest.cpp",
    "spellcheck/SpellCheckTestBase.cpp",
    "spellcheck/SpellCheckTestBase.h",
    "spellcheck/SpellCheckerTest.cpp",
    "state_machines/BackspaceStateMachineTest.cpp",
    "state_machines/BackwardCodePointStateMachineTest.cpp",
    "state_machines/BackwardGraphemeBoundaryStateMachineTest.cpp",
    "state_machines/ForwardCodePointStateMachineTest.cpp",
    "state_machines/ForwardGraphemeBoundaryStateMachineTest.cpp",
    "state_machines/StateMachineTestUtil.cpp",
    "state_machines/StateMachineTestUtil.h",
    "state_machines/StateMachineUtilTest.cpp",
  ]

  configs += [
    "//third_party/WebKit/Source/core:blink_core_pch",
    "//third_party/WebKit/Source:config",
    "//third_party/WebKit/Source:inside_blink",
  ]

  deps = [
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/WebKit/Source/core:core",
  ]
}
