88 lines
2.5 KiB
Plaintext
88 lines
2.5 KiB
Plaintext
/**
|
|
* Copyright (c) 2013-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*
|
|
* @providesModule getSampleStateForTesting
|
|
* @format
|
|
* @flow
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
const BlockMapBuilder = require('./BlockMapBuilder');
|
|
const CharacterMetadata = require('./CharacterMetadata');
|
|
const ContentBlock = require('./ContentBlock');
|
|
const ContentState = require('./ContentState');
|
|
const EditorState = require('./EditorState');
|
|
const Immutable = require('immutable');
|
|
const SampleDraftInlineStyle = require('./SampleDraftInlineStyle');
|
|
const SelectionState = require('./SelectionState');
|
|
|
|
const { BOLD, ITALIC } = SampleDraftInlineStyle;
|
|
const ENTITY_KEY = '1';
|
|
|
|
const BLOCKS = [new ContentBlock({
|
|
key: 'a',
|
|
type: 'unstyled',
|
|
text: 'Alpha',
|
|
characterList: Immutable.List(Immutable.Repeat(CharacterMetadata.EMPTY, 5))
|
|
}), new ContentBlock({
|
|
key: 'b',
|
|
type: 'unordered-list-item',
|
|
text: 'Bravo',
|
|
characterList: Immutable.List(Immutable.Repeat(CharacterMetadata.create({ style: BOLD, entity: ENTITY_KEY }), 5))
|
|
}), new ContentBlock({
|
|
key: 'c',
|
|
type: 'code-block',
|
|
text: 'Test',
|
|
characterList: Immutable.List(Immutable.Repeat(CharacterMetadata.EMPTY, 4))
|
|
}), new ContentBlock({
|
|
key: 'd',
|
|
type: 'code-block',
|
|
text: '',
|
|
characterList: Immutable.List()
|
|
}), new ContentBlock({
|
|
key: 'e',
|
|
type: 'code-block',
|
|
text: '',
|
|
characterList: Immutable.List()
|
|
}), new ContentBlock({
|
|
key: 'f',
|
|
type: 'blockquote',
|
|
text: 'Charlie',
|
|
characterList: Immutable.List(Immutable.Repeat(CharacterMetadata.create({ style: ITALIC, entity: null }), 7))
|
|
})];
|
|
|
|
const selectionState = new SelectionState({
|
|
anchorKey: 'a',
|
|
anchorOffset: 0,
|
|
focusKey: 'a',
|
|
focusOffset: 0,
|
|
isBackward: false,
|
|
hasFocus: true
|
|
});
|
|
|
|
const blockMap = BlockMapBuilder.createFromArray(BLOCKS);
|
|
const contentState = new ContentState({
|
|
blockMap,
|
|
entityMap: Immutable.OrderedMap(),
|
|
selectionBefore: selectionState,
|
|
selectionAfter: selectionState
|
|
}).createEntity({
|
|
type: 'IMAGE',
|
|
mutability: 'IMMUTABLE',
|
|
data: null
|
|
});
|
|
|
|
let editorState = EditorState.createWithContent(contentState);
|
|
editorState = EditorState.forceSelection(editorState, selectionState);
|
|
|
|
const getSampleStateForTesting = (): Object => {
|
|
return { editorState, contentState, selectionState };
|
|
};
|
|
|
|
module.exports = getSampleStateForTesting; |