blob: 7e68a1ed9e258641113e8aad13621c3bc4af6f23 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
package UnitTest.Tests
{
import UnitTest.ExtendedClasses.VellumTestCase;
import UnitTest.Fixtures.TestConfig;
import UnitTest.Fixtures.TestEditManager;
import flash.display.Sprite;
import flashx.textLayout.container.ContainerController;
import flashx.textLayout.conversion.TextConverter;
import flashx.textLayout.elements.TextFlow;
import flashx.textLayout.operations.ApplyLinkOperation;
import flashx.textLayout.tlf_internal;
import flashx.undo.IUndoManager;
import flashx.undo.UndoManager;
import org.flexunit.asserts.assertTrue;
use namespace tlf_internal;
/** Test the state of selection after each operation is done, undone, and redone.
*/
[TestCase(order=22)]
public class UndoRedoTest extends VellumTestCase
{
private var container:Sprite;
protected var editManager:TestEditManager;
protected var undoManager:IUndoManager;
protected var textFlow:TextFlow;
public function UndoRedoTest()
{
super("", "UndoRedoTest", TestConfig.getInstance());
}
protected function get initialImport():XML
{
return <TextFlow color="#000000" fontFamily="Tahoma" fontSize="14" fontStyle="normal" fontWeight="normal" lineHeight="130%" textDecoration="none" whiteSpaceCollapse="preserve" xmlns="http://ns.adobe.com/textLayout/2008">
<p>
<span>aaa</span>
</p>
<p styleName="h1">
<span>bbb</span>
</p>
</TextFlow>
}
[Before]
override public function setUpTest():void
{
super.setUpTest();
container = new Sprite();
var controllerOne:ContainerController = new ContainerController(container, 500, 500);
textFlow = TextConverter.importToFlow(initialImport, TextConverter.TEXT_LAYOUT_FORMAT);
undoManager = new UndoManager();
editManager = new TestEditManager(undoManager);
textFlow.interactionManager = editManager;
textFlow.flowComposer.addController(controllerOne);
textFlow.flowComposer.updateAllControllers();
}
[After]
override public function tearDownTest():void
{
super.tearDownTest();
container = null;
undoManager = null;
editManager = null;
textFlow = null;
}
[Test]
public function undoRedoLinkTest():void
{
//position > 3 will be in 2nd paragraph, cause error #2549628, no fix for now so the range is set to 3 to let the test case pass
var posOfSelection:int = TestData.posOfSelection;
editManager.selectRange(1, posOfSelection);
editManager.doOperation(new ApplyLinkOperation(editManager.getSelectionState(), "http://flex.apache.org", "_self", true));
var resultString:String = editManager.errors;
assertTrue("Undo and Redo not successfully. " + resultString, resultString == "");
}
}
}