http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/c1059121/automation_tests/src/UnitTest/Tests/ElementOperationTests.as
----------------------------------------------------------------------
diff --git a/automation_tests/src/UnitTest/Tests/ElementOperationTests.as
b/automation_tests/src/UnitTest/Tests/ElementOperationTests.as
deleted file mode 100644
index 5c3860d..0000000
--- a/automation_tests/src/UnitTest/Tests/ElementOperationTests.as
+++ /dev/null
@@ -1,1228 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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.TestDescriptor;
- import UnitTest.ExtendedClasses.TestSuiteExtended;
- import UnitTest.ExtendedClasses.VellumTestCase;
- import UnitTest.Fixtures.TestConfig;
-
- import flash.text.engine.FontWeight;
-
- import flashx.textLayout.conversion.TextConverter;
- import flashx.textLayout.edit.EditManager;
- import flashx.textLayout.elements.DivElement;
- import flashx.textLayout.elements.FlowGroupElement;
- import flashx.textLayout.elements.LinkElement;
- import flashx.textLayout.elements.ListElement;
- import flashx.textLayout.elements.ParagraphElement;
- import flashx.textLayout.elements.SpanElement;
- import flashx.textLayout.elements.TextFlow;
- import flashx.textLayout.formats.TextAlign;
- import flashx.textLayout.formats.TextLayoutFormat;
- import flashx.textLayout.operations.ApplyElementIDOperation;
- import flashx.textLayout.operations.ApplyElementStyleNameOperation;
- import flashx.textLayout.operations.ApplyElementTypeNameOperation;
- import flashx.textLayout.operations.ApplyElementUserStyleOperation;
- import flashx.textLayout.operations.ApplyFormatToElementOperation;
-
- import org.flexunit.asserts.assertTrue;
-
- public class ElementOperationTests extends VellumTestCase
- {
- public function ElementOperationTests(methodName:String,
testID:String, testConfig:TestConfig, testXML:XML = null)
- {
- super(methodName, testID, testConfig);
-
- // Note: These must correspond to a Watson product area
(case-sensitive)
- metaData.productArea = "Editing";
- }
-
- public static function suite(testConfig:TestConfig,
ts:TestSuiteExtended):void
- {
- if (testConfig.writingDirection[0] == "tb" &&
testConfig.writingDirection[1] == "ltr")
- {
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changeTextFlowIdTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changeFirstParagraphIdTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changePartialParagraphIdTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changePartialSpanIdTest", testConfig ) );
-
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changeTextFlowStyleNameTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changeFirstParagraphStyleNameTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changePartialParagraphStyleNameTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changePartialSpanStyleNameTest", testConfig ) );
-
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changeTextFlowTypeNameTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changeFirstParagraphTypeNameTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changePartialParagraphTypeNameTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changePartialSpanTypeNameTest", testConfig ) );
-
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changeTextFlowUserStyleTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changeFirstParagraphUserStyleTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changePartialParagraphUserStyleTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "changePartialSpanUserStyleTest", testConfig ) );
-
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "deleteAcrossDivBoundaryTest", testConfig ) );
-
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "splitStyledParagraphTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "BreaksSplitTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "splitStyledListItemTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "splitStyledAnchorTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "spanElementReplaceTextInvalidPos", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "copyErrorMassageTest", testConfig ) );
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "applyFormatToElementOperationFormatTest", testConfig )
);
- ts.addTestDescriptor (new TestDescriptor
(ElementOperationTests, "typeNameSetGetTest", testConfig ) );
- }
- }
-
- /**
- */
- public function changeTextFlowIdTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var origId:String = tf.id;
- var newId:String = "newTFId";
-
- SelManager.doOperation(new
ApplyElementIDOperation(SelManager.getSelectionState(),tf,newId));
- assertTrue("changeTextFlowIdTest doOperation error",
tf.id == newId);
- SelManager.undo();
- assertTrue("changeTextFlowIdTest undo error", tf.id ==
origId);
- SelManager.redo();
- assertTrue("changeTextFlowIdTest redo error", tf.id ==
newId);
- }
-
- /**
- */
- public function changeFirstParagraphIdTest():void
- {
- var p:ParagraphElement =
SelManager.textFlow.getChildAt(0) as ParagraphElement;
- var origId:String = p.id;
- var newId:String = "newParaId";
-
- SelManager.doOperation(new
ApplyElementIDOperation(SelManager.getSelectionState(),p,newId));
- assertTrue("changeFirstParagraphIdTest doOperation
error", p.id == newId);
- SelManager.undo();
- assertTrue("changeFirstParagraphIdTest undo error",
p.id == origId);
- SelManager.redo();
- assertTrue("changeFirstParagraphIdTest redo error",
p.id == newId);
- }
-
- /**
- */
- public function changePartialParagraphIdTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var numParas:int = tf.numChildren;
- var totalLength:int = tf.textLength;
-
- var p:ParagraphElement = tf.getChildAt(0) as
ParagraphElement;
- var origId:String = p.id;
- var origTextLength:int = p.textLength;
- var newId:String = "newParaId";
-
- // creates two new paragraphs
- SelManager.doOperation(new
ApplyElementIDOperation(SelManager.getSelectionState(),p,newId,10,20));
- p = tf.findLeaf(11).getParagraph(); // prev para
gets a terminator added
- assertTrue("changePartialParagraphIdTest doOperation
error p wrong size", p.textLength == 11 && p.parentRelativeStart == 11);
- assertTrue("changePartialParagraphIdTest doOperation
error id", p.id == newId);
- assertTrue("changePartialParagraphIdTest doOperation
error numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphIdTest doOperation
error totalLength", tf.textLength == totalLength+2);
-
- SelManager.undo();
- p = tf.findLeaf(10).getParagraph();
- assertTrue("changePartialParagraphIdTest undo error",
p.id == origId && p.textLength == origTextLength);
- assertTrue("changePartialParagraphIdTest undo error
numParas", tf.numChildren == numParas);
- assertTrue("changePartialParagraphIdTest undo error
totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- p = tf.findLeaf(11).getParagraph();
- assertTrue("changePartialParagraphIdTest redo error p
wrong size", p.textLength == 11 && p.parentRelativeStart == 11);
- assertTrue("changePartialParagraphIdTest redo error",
p.id == newId);
- assertTrue("changePartialParagraphIdTest redo error
numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphIdTest redo error
totalLength", tf.textLength == totalLength+2);
- }
-
- /**
- */
- public function changePartialSpanIdTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var numParas:int = tf.numChildren;
- var totalLength:int = tf.textLength;
-
- var span:SpanElement = tf.getLastLeaf() as SpanElement;
- assertTrue("changePartialSpanIdTest span is too short
for the test",span.textLength > 20);
- var spanStart:int = span.getAbsoluteStart();
-
- var origId:String = span.id;
- var origSpanLength:int = span.textLength;
- var newId:String = "newSpanId";
-
- // splits the span
- SelManager.doOperation(new
ApplyElementIDOperation(SelManager.getSelectionState(),span,newId,10,20));
-
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanIdTest doOperation error
span wrong size", span.textLength == 10 && span.parentRelativeStart == 10);
- assertTrue("changePartialSpanIdTest doOperation error
id", span.id == newId);
- assertTrue("changePartialSpanIdTest doOperation error
totalLength", tf.textLength == totalLength);
-
- SelManager.undo();
- span = tf.findLeaf(spanStart) as SpanElement;
- assertTrue("changePartialSpanIdTest undo error",
span.id == origId && span.textLength == origSpanLength);
- assertTrue("changePartialSpanIdTest undo error
totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanIdTest redo error span
wrong size", span.textLength == 10 && span.parentRelativeStart == 10);
- assertTrue("changePartialSpanIdTest redo error",
span.id == newId);
- assertTrue("changePartialSpanIdTest redo error
totalLength", tf.textLength == totalLength);
- }
-
- /**
- */
- public function changeTextFlowStyleNameTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var origStyleName:String = tf.styleName;
- var newStyleName:String = "newTFStyleName";
-
- // ApplyElementStyleNameOperation is deprecated
- SelManager.doOperation(new
ApplyElementStyleNameOperation(SelManager.getSelectionState(),tf,newStyleName));
- assertTrue("changeTextFlowStyleNameTest doOperation
error", tf.styleName == newStyleName);
- SelManager.undo();
- assertTrue("changeTextFlowStyleNameTest undo error",
tf.styleName == origStyleName);
- SelManager.redo();
- assertTrue("changeTextFlowStyleNameTest redo error",
tf.styleName == newStyleName);
-
- SelManager.undo();
- assertTrue("changeTextFlowStyleNameTest undo error",
tf.styleName == origStyleName);
-
- // test using the replacement class
- SelManager.doOperation(new
ApplyFormatToElementOperation(SelManager.getSelectionState(),tf,TextLayoutFormat.createTextLayoutFormat({styleName:newStyleName})));
- assertTrue("changeTextFlowStyleNameTest doOperation
error", tf.styleName == newStyleName);
- SelManager.undo();
- assertTrue("changeTextFlowStyleNameTest undo error",
tf.styleName == origStyleName);
- SelManager.redo();
- assertTrue("changeTextFlowStyleNameTest redo error",
tf.styleName == newStyleName);
-
- }
-
- /**
- */
- public function changeFirstParagraphStyleNameTest():void
- {
- var p:ParagraphElement =
SelManager.textFlow.getChildAt(0) as ParagraphElement;
- var origStyleName:String = p.styleName;
- var newStyleName:String = "newParaStyleName";
-
- // ApplyElementStyleNameOperation is deprecated
- SelManager.doOperation(new
ApplyElementStyleNameOperation(SelManager.getSelectionState(),p,newStyleName));
- assertTrue("changeFirstParagraphStyleNameTest
doOperation error", p.styleName == newStyleName);
- SelManager.undo();
- assertTrue("changeFirstParagraphStyleNameTest undo
error", p.styleName == origStyleName);
- SelManager.redo();
- assertTrue("changeFirstParagraphStyleNameTest redo
error", p.styleName == newStyleName);
-
- SelManager.undo();
- assertTrue("changeFirstParagraphStyleNameTest undo
error", p.styleName == origStyleName);
-
- // test using the replacement class
- SelManager.doOperation(new
ApplyFormatToElementOperation(SelManager.getSelectionState(),p,TextLayoutFormat.createTextLayoutFormat({styleName:newStyleName})));
- assertTrue("changeFirstParagraphStyleNameTest
doOperation error", p.styleName == newStyleName);
- SelManager.undo();
- assertTrue("changeFirstParagraphStyleNameTest undo
error", p.styleName == origStyleName);
- SelManager.redo();
- assertTrue("changeFirstParagraphStyleNameTest redo
error", p.styleName == newStyleName);
-
- }
-
- /**
- */
- public function changeTextFlowTypeNameTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var origTypeName:String = tf.typeName;
- var newTypeName:String = "newTFTypeName";
-
- SelManager.doOperation(new
ApplyElementTypeNameOperation(SelManager.getSelectionState(),tf,newTypeName));
- assertTrue("changeTextFlowTypeNameTest doOperation
error", tf.typeName == newTypeName);
- SelManager.undo();
- assertTrue("changeTextFlowTypeNameTest undo error",
tf.typeName == origTypeName);
- SelManager.redo();
- assertTrue("changeTextFlowTypeNameTest redo error",
tf.typeName == newTypeName);
- }
-
- /**
- */
- public function changeFirstParagraphTypeNameTest():void
- {
- var p:ParagraphElement =
SelManager.textFlow.getChildAt(0) as ParagraphElement;
- var origTypeName:String = p.typeName;
- var newTypeName:String = "newParaTypeName";
-
- SelManager.doOperation(new
ApplyElementTypeNameOperation(SelManager.getSelectionState(),p,newTypeName));
- assertTrue("changeFirstParagraphTypeNameTest
doOperation error", p.typeName == newTypeName);
- SelManager.undo();
- assertTrue("changeFirstParagraphTypeNameTest undo
error", p.typeName == origTypeName);
- SelManager.redo();
- assertTrue("changeFirstParagraphTypeNameTest redo
error", p.typeName == newTypeName);
- }
-
- /**
- */
- public function changePartialParagraphStyleNameTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var numParas:int = tf.numChildren;
- var totalLength:int = tf.textLength;
-
- var p:ParagraphElement = tf.getChildAt(0) as
ParagraphElement;
- var origStyleName:String = p.styleName;
- var origTextLength:int = p.textLength;
- var newStyleName:String = "newParaStyleName";
-
- // ApplyElementStyleNameOperation is deprecated
- // creates two new paragraphs
- SelManager.doOperation(new
ApplyElementStyleNameOperation(SelManager.getSelectionState(),p,newStyleName,10,20));
- p = tf.findLeaf(11).getParagraph(); // prev para
gets a terminator added
- assertTrue("changePartialParagraphStyleNameTest
doOperation error p wrong size", p.textLength == 11 && p.parentRelativeStart ==
11);
- assertTrue("changePartialParagraphStyleNameTest
doOperation error", p.styleName == newStyleName);
- assertTrue("changePartialParagraphStyleNameTest
doOperation error numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphStyleNameTest
doOperation error totalLength", tf.textLength == totalLength+2);
-
- SelManager.undo();
- p = tf.findLeaf(10).getParagraph();
- assertTrue("changePartialParagraphStyleNameTest undo
error", p.styleName == origStyleName && p.textLength == origTextLength);
- assertTrue("changePartialParagraphStyleNameTest undo
error numParas", tf.numChildren == numParas);
- assertTrue("changePartialParagraphStyleNameTest undo
error totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- p = tf.findLeaf(11).getParagraph();
- assertTrue("changePartialParagraphStyleNameTest redo
error p wrong size", p.textLength == 11 && p.parentRelativeStart == 11);
- assertTrue("changePartialParagraphStyleNameTest redo
error", p.styleName == newStyleName);
- assertTrue("changePartialParagraphStyleNameTest redo
error numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphStyleNameTest redo
error totalLength", tf.textLength == totalLength+2);
-
- // cleanup
- SelManager.undo();
- p = tf.findLeaf(10).getParagraph();
- assertTrue("changePartialParagraphStyleNameTest undo
error", p.styleName == origStyleName && p.textLength == origTextLength);
- assertTrue("changePartialParagraphStyleNameTest undo
error numParas", tf.numChildren == numParas);
- assertTrue("changePartialParagraphStyleNameTest undo
error totalLength", tf.textLength == totalLength);
-
- // test using the replacement class
- // creates two new paragraphs
- SelManager.doOperation(new
ApplyFormatToElementOperation(SelManager.getSelectionState(),p,TextLayoutFormat.createTextLayoutFormat({styleName:newStyleName}),10,20));
- p = tf.findLeaf(11).getParagraph(); // prev para
gets a terminator added
- assertTrue("changePartialParagraphStyleNameTest
doOperation error p wrong size", p.textLength == 11 && p.parentRelativeStart ==
11);
- assertTrue("changePartialParagraphStyleNameTest
doOperation error", p.styleName == newStyleName);
- assertTrue("changePartialParagraphStyleNameTest
doOperation error numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphStyleNameTest
doOperation error totalLength", tf.textLength == totalLength+2);
-
- SelManager.undo();
- p = tf.findLeaf(10).getParagraph();
- assertTrue("changePartialParagraphStyleNameTest undo
error", p.styleName == origStyleName && p.textLength == origTextLength);
- assertTrue("changePartialParagraphStyleNameTest undo
error numParas", tf.numChildren == numParas);
- assertTrue("changePartialParagraphStyleNameTest undo
error totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- p = tf.findLeaf(11).getParagraph();
- assertTrue("changePartialParagraphStyleNameTest redo
error p wrong size", p.textLength == 11 && p.parentRelativeStart == 11);
- assertTrue("changePartialParagraphStyleNameTest redo
error", p.styleName == newStyleName);
- assertTrue("changePartialParagraphStyleNameTest redo
error numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphStyleNameTest redo
error totalLength", tf.textLength == totalLength+2);
-
- }
-
- /**
- */
- public function changePartialSpanStyleNameTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var numParas:int = tf.numChildren;
- var totalLength:int = tf.textLength;
-
- var span:SpanElement = tf.getLastLeaf() as SpanElement;
- assertTrue("changePartialSpanStyleNameTest span is too
short for the test",span.textLength > 20);
- var spanStart:int = span.getAbsoluteStart();
-
- var origStyleName:String = span.styleName;
- var origSpanLength:int = span.textLength;
- var newStyleName:String = "newSpanStyleName";
-
- // ApplyElementStyleNameOperation is deprecated
- // splits the span
- SelManager.doOperation(new
ApplyElementStyleNameOperation(SelManager.getSelectionState(),span,newStyleName,10,20));
-
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanStyleNameTest doOperation
error span wrong size", span.textLength == 10 && span.parentRelativeStart ==
10);
- assertTrue("changePartialSpanStyleNameTest doOperation
error id", span.styleName == newStyleName);
- assertTrue("changePartialSpanStyleNameTest doOperation
error totalLength", tf.textLength == totalLength);
-
- SelManager.undo();
- span = tf.findLeaf(spanStart) as SpanElement;
- assertTrue("changePartialSpanStyleNameTest undo error",
span.styleName == origStyleName && span.textLength == origSpanLength);
- assertTrue("changePartialSpanStyleNameTest undo error
totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanStyleNameTest redo error
span wrong size", span.textLength == 10 && span.parentRelativeStart == 10);
- assertTrue("changePartialSpanStyleNameTest redo error",
span.styleName == newStyleName);
- assertTrue("changePartialSpanStyleNameTest redo error
totalLength", tf.textLength == totalLength);
-
- // cleanup
- SelManager.undo();
- span = tf.findLeaf(spanStart) as SpanElement;
- assertTrue("changePartialSpanStyleNameTest undo error",
span.styleName == origStyleName && span.textLength == origSpanLength);
- assertTrue("changePartialSpanStyleNameTest undo error
totalLength", tf.textLength == totalLength);
-
- // test using the replacement function
-
- // splits the span
- SelManager.doOperation(new
ApplyFormatToElementOperation(SelManager.getSelectionState(),span,TextLayoutFormat.createTextLayoutFormat({styleName:newStyleName}),10,20));
-
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanStyleNameTest doOperation
error span wrong size", span.textLength == 10 && span.parentRelativeStart ==
10);
- assertTrue("changePartialSpanStyleNameTest doOperation
error id", span.styleName == newStyleName);
- assertTrue("changePartialSpanStyleNameTest doOperation
error totalLength", tf.textLength == totalLength);
-
- SelManager.undo();
- span = tf.findLeaf(spanStart) as SpanElement;
- assertTrue("changePartialSpanStyleNameTest undo error",
span.styleName == origStyleName && span.textLength == origSpanLength);
- assertTrue("changePartialSpanStyleNameTest undo error
totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanStyleNameTest redo error
span wrong size", span.textLength == 10 && span.parentRelativeStart == 10);
- assertTrue("changePartialSpanStyleNameTest redo error",
span.styleName == newStyleName);
- assertTrue("changePartialSpanStyleNameTest redo error
totalLength", tf.textLength == totalLength);
- }
-
- /**
- */
- public function changePartialParagraphTypeNameTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var numParas:int = tf.numChildren;
- var totalLength:int = tf.textLength;
-
- var p:ParagraphElement = tf.getChildAt(0) as
ParagraphElement;
- var origTypeName:String = p.typeName;
- var origTextLength:int = p.textLength;
- var newTypeName:String = "newParaTypeName";
-
- // creates two new paragraphs
- SelManager.doOperation(new
ApplyElementTypeNameOperation(SelManager.getSelectionState(),p,newTypeName,10,20));
- p = tf.findLeaf(11).getParagraph(); // prev para
gets a terminator added
- assertTrue("changePartialParagraphTypeNameTest
doOperation error p wrong size", p.textLength == 11 && p.parentRelativeStart ==
11);
- assertTrue("changePartialParagraphTypeNameTest
doOperation error", p.typeName == newTypeName);
- assertTrue("changePartialParagraphTypeNameTest
doOperation error numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphTypeNameTest
doOperation error totalLength", tf.textLength == totalLength+2);
-
- SelManager.undo();
- p = tf.findLeaf(10).getParagraph();
- assertTrue("changePartialParagraphTypeNameTest undo
error", p.typeName == origTypeName && p.textLength == origTextLength);
- assertTrue("changePartialParagraphTypeNameTest undo
error numParas", tf.numChildren == numParas);
- assertTrue("changePartialParagraphTypeNameTest undo
error totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- p = tf.findLeaf(11).getParagraph();
- assertTrue("changePartialParagraphTypeNameTest redo
error p wrong size", p.textLength == 11 && p.parentRelativeStart == 11);
- assertTrue("changePartialParagraphTypeNameTest redo
error", p.typeName == newTypeName);
- assertTrue("changePartialParagraphTypeNameTest redo
error numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphTypeNameTest redo
error totalLength", tf.textLength == totalLength+2);
- }
-
- /**
- */
- public function changePartialSpanTypeNameTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var numParas:int = tf.numChildren;
- var totalLength:int = tf.textLength;
-
- var span:SpanElement = tf.getLastLeaf() as SpanElement;
- assertTrue("changePartialSpanTypeNameTest span is too
short for the test",span.textLength > 20);
- var spanStart:int = span.getAbsoluteStart();
-
- var origTypeName:String = span.typeName;
- var origSpanLength:int = span.textLength;
- var newTypeName:String = "newSpanTypeName";
-
- // splits the span
- SelManager.doOperation(new
ApplyElementTypeNameOperation(SelManager.getSelectionState(),span,newTypeName,10,20));
-
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanTypeNameTest doOperation
error span wrong size", span.textLength == 10 && span.parentRelativeStart ==
10);
- assertTrue("changePartialSpanTypeNameTest doOperation
error id", span.typeName == newTypeName);
- assertTrue("changePartialSpanTypeNameTest doOperation
error totalLength", tf.textLength == totalLength);
-
- SelManager.undo();
- span = tf.findLeaf(spanStart) as SpanElement;
- assertTrue("changePartialSpanTypeNameTest undo error",
span.typeName == origTypeName && span.textLength == origSpanLength);
- assertTrue("changePartialSpanTypeNameTest undo error
totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanTypeNameTest redo error
span wrong size", span.textLength == 10 && span.parentRelativeStart == 10);
- assertTrue("changePartialSpanTypeNameTest redo error",
span.typeName == newTypeName);
- assertTrue("changePartialSpanTypeNameTest redo error
totalLength", tf.textLength == totalLength);
- }
-
- /**
- */
- public function changeTextFlowUserStyleTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var styleName:String = "userStyleName";
- var origStyleValue:* = tf.getStyle(styleName);
- var newStyleValue:String = "newTFStyleValue";
-
- // ApplyElementUserStyleOperation is deprecated
- SelManager.doOperation(new
ApplyElementUserStyleOperation(SelManager.getSelectionState(),tf,styleName,newStyleValue));
- assertTrue("changeTextFlowUserStyleTest doOperation
error", tf.getStyle(styleName) === newStyleValue);
- SelManager.undo();
- assertTrue("changeTextFlowUserStyleTest undo error",
tf.getStyle(styleName) === origStyleValue);
- SelManager.redo();
- assertTrue("changeTextFlowUserStyleTest redo error",
tf.getStyle(styleName) === newStyleValue);
-
- // cleanup
- SelManager.undo();
- assertTrue("changeTextFlowUserStyleTest undo error",
tf.getStyle(styleName) === origStyleValue);
-
- // test using the replacement class
- var format:TextLayoutFormat = new TextLayoutFormat();
- format.setStyle(styleName,newStyleValue);
- SelManager.doOperation(new
ApplyFormatToElementOperation(SelManager.getSelectionState(),tf,format));
- assertTrue("changeTextFlowUserStyleTest doOperation
error", tf.getStyle(styleName) === newStyleValue);
- SelManager.undo();
- assertTrue("changeTextFlowUserStyleTest undo error",
tf.getStyle(styleName) === origStyleValue);
- SelManager.redo();
- assertTrue("changeTextFlowUserStyleTest redo error",
tf.getStyle(styleName) === newStyleValue);
- }
-
- /**
- */
- public function changeFirstParagraphUserStyleTest():void
- {
- var p:ParagraphElement =
SelManager.textFlow.getChildAt(0) as ParagraphElement;
- var styleName:String = "userStyleName";
- var origStyleValue:* = p.getStyle(styleName);
- var newStyleValue:String = "newParaStyleValue";
-
- // ApplyElementUserStyleOperation is deprecated
- SelManager.doOperation(new
ApplyElementUserStyleOperation(SelManager.getSelectionState(),p,styleName,newStyleValue));
- assertTrue("changeFirstParagraphUserStyleTest
doOperation error", p.getStyle(styleName) === newStyleValue);
- SelManager.undo();
- assertTrue("changeFirstParagraphUserStyleTest undo
error", p.getStyle(styleName) === origStyleValue);
- SelManager.redo();
- assertTrue("changeFirstParagraphUserStyleTest redo
error", p.getStyle(styleName) === newStyleValue);
-
- // cleanup
- SelManager.undo();
- assertTrue("changeFirstParagraphUserStyleTest undo
error", p.getStyle(styleName) === origStyleValue);
-
- // test using the replacement class
- var format:TextLayoutFormat = new TextLayoutFormat();
- format.setStyle(styleName,newStyleValue);
- SelManager.doOperation(new
ApplyFormatToElementOperation(SelManager.getSelectionState(),p,format));
- assertTrue("changeFirstParagraphUserStyleTest
doOperation error", p.getStyle(styleName) === newStyleValue);
- SelManager.undo();
- assertTrue("changeFirstParagraphUserStyleTest undo
error", p.getStyle(styleName) === origStyleValue);
- SelManager.redo();
- assertTrue("changeFirstParagraphUserStyleTest redo
error", p.getStyle(styleName) === newStyleValue);
- }
- /**
- */
- public function changePartialParagraphUserStyleTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var numParas:int = tf.numChildren;
- var totalLength:int = tf.textLength;
-
- var p:ParagraphElement = tf.getChildAt(0) as
ParagraphElement;
- var origTextLength:int = p.textLength;
-
- var styleName:String = "userStyleName";
- var origStyleValue:* = p.getStyle(styleName);
- var newStyleValue:String = "newParaStyleValue";
-
- // ApplyElementUserStyleOperation is deprecated
- // creates two new paragraphs
- SelManager.doOperation(new
ApplyElementUserStyleOperation(SelManager.getSelectionState(),p,styleName,newStyleValue,10,20));
- p = tf.findLeaf(11).getParagraph(); // prev para
gets a terminator added
- assertTrue("changePartialParagraphUserStyleTest
doOperation error p wrong size", p.textLength == 11 && p.parentRelativeStart ==
11);
- assertTrue("changePartialParagraphUserStyleTest
doOperation error", p.getStyle(styleName) === newStyleValue);
- assertTrue("changePartialParagraphUserStyleTest
doOperation error numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphUserStyleTest
doOperation error totalLength", tf.textLength == totalLength+2);
-
- SelManager.undo();
- p = tf.findLeaf(10).getParagraph();
- assertTrue("changePartialParagraphUserStyleTest undo
error", p.getStyle(styleName) === origStyleValue && p.textLength ==
origTextLength);
- assertTrue("changePartialParagraphUserStyleTest undo
error numParas", tf.numChildren == numParas);
- assertTrue("changePartialParagraphUserStyleTest undo
error totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- p = tf.findLeaf(11).getParagraph();
- assertTrue("changePartialParagraphStyleNameTest redo
error p wrong size", p.textLength == 11 && p.parentRelativeStart == 11);
- assertTrue("changePartialParagraphStyleNameTest redo
error", p.getStyle(styleName) === newStyleValue);
- assertTrue("changePartialParagraphStyleNameTest redo
error numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphStyleNameTest redo
error totalLength", tf.textLength == totalLength+2);
-
- // cleanup
- SelManager.undo();
- p = tf.findLeaf(10).getParagraph();
- assertTrue("changePartialParagraphUserStyleTest undo
error", p.getStyle(styleName) === origStyleValue && p.textLength ==
origTextLength);
- assertTrue("changePartialParagraphUserStyleTest undo
error numParas", tf.numChildren == numParas);
- assertTrue("changePartialParagraphUserStyleTest undo
error totalLength", tf.textLength == totalLength);
-
- // test using the replacement class
- var format:TextLayoutFormat = new TextLayoutFormat();
- format.setStyle(styleName,newStyleValue);
- SelManager.doOperation(new
ApplyFormatToElementOperation(SelManager.getSelectionState(),p,format,10,20));
- p = tf.findLeaf(11).getParagraph(); // prev para
gets a terminator added
- assertTrue("changePartialParagraphUserStyleTest
doOperation error p wrong size", p.textLength == 11 && p.parentRelativeStart ==
11);
- assertTrue("changePartialParagraphUserStyleTest
doOperation error", p.getStyle(styleName) === newStyleValue);
- assertTrue("changePartialParagraphUserStyleTest
doOperation error numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphUserStyleTest
doOperation error totalLength", tf.textLength == totalLength+2);
-
- SelManager.undo();
- p = tf.findLeaf(10).getParagraph();
- assertTrue("changePartialParagraphUserStyleTest undo
error", p.getStyle(styleName) === origStyleValue && p.textLength ==
origTextLength);
- assertTrue("changePartialParagraphUserStyleTest undo
error numParas", tf.numChildren == numParas);
- assertTrue("changePartialParagraphUserStyleTest undo
error totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- p = tf.findLeaf(11).getParagraph();
- assertTrue("changePartialParagraphStyleNameTest redo
error p wrong size", p.textLength == 11 && p.parentRelativeStart == 11);
- assertTrue("changePartialParagraphStyleNameTest redo
error", p.getStyle(styleName) === newStyleValue);
- assertTrue("changePartialParagraphStyleNameTest redo
error numParas", tf.numChildren == numParas+2);
- assertTrue("changePartialParagraphStyleNameTest redo
error totalLength", tf.textLength == totalLength+2);
-
- }
-
- /**
- */
- public function changePartialSpanUserStyleTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var numParas:int = tf.numChildren;
- var totalLength:int = tf.textLength;
-
- var span:SpanElement = tf.getLastLeaf() as SpanElement;
- assertTrue("changePartialSpanStyleNameTest span is too
short for the test",span.textLength > 20);
- var spanStart:int = span.getAbsoluteStart();
- var origSpanLength:int = span.textLength;
-
- var styleName:String = "userStyleName";
- var origStyleValue:* = span.getStyle(styleName);
- var newStyleValue:String = "newSpanStyleValue";
-
- // ApplyElementUserStyleOperation is deprecated
- // splits the span
- SelManager.doOperation(new
ApplyElementUserStyleOperation(SelManager.getSelectionState(),span,styleName,newStyleValue,10,20));
-
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanUserStyleTest doOperation
error span wrong size", span.textLength == 10 && span.parentRelativeStart ==
10);
- assertTrue("changePartialSpanUserStyleTest doOperation
error", span.getStyle(styleName) === newStyleValue);
- assertTrue("changePartialSpanUserStyleTest doOperation
error totalLength", tf.textLength == totalLength);
-
- SelManager.undo();
- span = tf.findLeaf(spanStart) as SpanElement;
- assertTrue("changePartialSpanUserStyleTest undo error",
span.getStyle(styleName) === origStyleValue && span.textLength ==
origSpanLength);
- assertTrue("changePartialSpanUserStyleTest undo error
totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanUserStyleTest redo error
span wrong size", span.textLength == 10 && span.parentRelativeStart == 10);
- assertTrue("changePartialSpanUserStyleTest redo error",
span.getStyle(styleName) === newStyleValue);
- assertTrue("changePartialSpanUserStyleTest redo error
totalLength", tf.textLength == totalLength);
-
- // cleanup
- SelManager.undo();
- span = tf.findLeaf(spanStart) as SpanElement;
- assertTrue("changePartialSpanUserStyleTest undo error",
span.getStyle(styleName) === origStyleValue && span.textLength ==
origSpanLength);
- assertTrue("changePartialSpanUserStyleTest undo error
totalLength", tf.textLength == totalLength);
-
- // splits the span
- var format:TextLayoutFormat = new TextLayoutFormat();
- format.setStyle(styleName,newStyleValue);
- SelManager.doOperation(new
ApplyFormatToElementOperation(SelManager.getSelectionState(),span,format,10,20));
-
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanUserStyleTest doOperation
error span wrong size", span.textLength == 10 && span.parentRelativeStart ==
10);
- assertTrue("changePartialSpanUserStyleTest doOperation
error", span.getStyle(styleName) === newStyleValue);
- assertTrue("changePartialSpanUserStyleTest doOperation
error totalLength", tf.textLength == totalLength);
-
- SelManager.undo();
- span = tf.findLeaf(spanStart) as SpanElement;
- assertTrue("changePartialSpanUserStyleTest undo error",
span.getStyle(styleName) === origStyleValue && span.textLength ==
origSpanLength);
- assertTrue("changePartialSpanUserStyleTest undo error
totalLength", tf.textLength == totalLength);
-
- SelManager.redo();
- span = tf.findLeaf(spanStart+10) as SpanElement;
- assertTrue("changePartialSpanUserStyleTest redo error
span wrong size", span.textLength == 10 && span.parentRelativeStart == 10);
- assertTrue("changePartialSpanUserStyleTest redo error",
span.getStyle(styleName) === newStyleValue);
- assertTrue("changePartialSpanUserStyleTest redo error
totalLength", tf.textLength == totalLength);
- }
-
- private static const divTestMarkup:String = "<TextFlow
whiteSpaceCollapse='preserve'
xmlns='http://ns.adobe.com/textLayout/2008'><div><p><span>asd</span></p></div><p><span>asd</span></p></TextFlow>";
-
- /**
- */
- public function deleteAcrossDivBoundaryTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var selectFlow:TextFlow =
TextConverter.importToFlow(divTestMarkup,TextConverter.TEXT_LAYOUT_FORMAT);
-
- var div:DivElement = selectFlow.getChildAt(0) as
DivElement;
- var para:ParagraphElement = selectFlow.getChildAt(1) as
ParagraphElement;
-
- // setup
- tf.replaceChildren(0,tf.numChildren, div.deepCopy());
- tf.replaceChildren(1,tf.numChildren, para.deepCopy());
- tf.flowComposer.updateAllControllers();
-
- var lenBefore:int = tf.textLength;
-
- SelManager.selectRange(3,4);
- EditManager(SelManager).deleteText();
-
- assertTrue("length didn't change after delete across
div boundary!", tf.textLength != lenBefore);
-
- }
-
- /**
- */
- //Test for bug#2948473, we will not copy the
containerBreakAfter, containerBreakBefore
- //columnBreakAfter, columnBreakBefore attribute to the new
paragraph
- public function BreaksSplitTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
-
- // a simple styled paragraph - always copy
- var p:ParagraphElement = new ParagraphElement();
- p.textAlign = TextAlign.LEFT;
- p.columnBreakAfter = 'always';
- p.columnBreakBefore = 'always';
- p.containerBreakAfter = 'always';
- p.containerBreakBefore = 'always';
- var s:SpanElement = new SpanElement();
- s.fontWeight = FontWeight.BOLD;
- s.text = "Hello";
- p.addChild(s);
-
- // scratch objects
- var p1:ParagraphElement;
- var p2:ParagraphElement;
- var s1:SpanElement;
- var s2:SpanElement;
-
-
- // BEGIN SPLIT AT BEGINNING TEST
-
- // setup
-
tf.replaceChildren(0,tf.numChildren,p.deepCopy(0,p.textLength));
- tf.flowComposer.updateAllControllers();
-
- // split at beginning
- SelManager.selectRange(0,0);
- EditManager(SelManager).splitParagraph();
-
- assertTrue("BreaksSplitTest 1: incorrect number of
children after split",tf.numChildren == 2);
- p1 = tf.getChildAt(0) as ParagraphElement;
- p2 = tf.getChildAt(1) as ParagraphElement;
-
- assertTrue("BreaksSplitTest 1: p1 is incorrect after
split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) && p1.numChildren ==
1);
- assertTrue("BreaksSplitTest 1: p2 is incorrect after
split",p2 && !TextLayoutFormat.isEqual(p.format,p2.format) && p2.numChildren ==
1 &&
- p2.columnBreakAfter == undefined &&
- p2.columnBreakBefore == undefined &&
- p2.containerBreakAfter == undefined &&
- p2.containerBreakBefore == undefined);
-
- s1 = p1.getChildAt(0) as SpanElement;
- s2 = p2.getChildAt(0) as SpanElement;
-
- assertTrue("BreaksSplitTest 1: s1 is incorrect after
split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("BreaksSplitTest 1: s2 is incorrect after
split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT AT BEGINNING TEST
-
- // BEGIN SPLIT AT END TEST
-
- // setup
-
tf.replaceChildren(0,tf.numChildren,p.deepCopy(0,p.textLength));
- tf.flowComposer.updateAllControllers();
-
- // split at end
- SelManager.selectRange(tf.textLength-1,tf.textLength-1);
- EditManager(SelManager).splitParagraph();
-
- assertTrue("BreaksSplitTest 2: incorrect number of
children after split",tf.numChildren == 2);
- p1 = tf.getChildAt(0) as ParagraphElement;
- p2 = tf.getChildAt(1) as ParagraphElement;
-
- assertTrue("BreaksSplitTest 2: p1 is incorrect after
split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) && p1.numChildren ==
1);
- assertTrue("BreaksSplitTest 2: p2 is incorrect after
split",p2 && !TextLayoutFormat.isEqual(p.format,p2.format) && p2.numChildren ==
1 &&
- p2.columnBreakAfter == undefined &&
- p2.columnBreakBefore == undefined &&
- p2.containerBreakAfter == undefined &&
- p2.containerBreakBefore == undefined);
-
- s1 = p1.getChildAt(0) as SpanElement;
- s2 = p2.getChildAt(0) as SpanElement;
-
- assertTrue("BreaksSplitTest 2: s1 is incorrect after
split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("BreaksSplitTest 2: s2 is incorrect after
split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT AT END TEST
-
- // BEGIN SPLIT IN MIDDLE TEST
-
- // setup
-
tf.replaceChildren(0,tf.numChildren,p.deepCopy(0,p.textLength));
- tf.flowComposer.updateAllControllers();
-
- // split at middle
- SelManager.selectRange(2,2);
- EditManager(SelManager).splitParagraph();
-
- assertTrue("BreaksSplitTest 3: incorrect number of
children after split",tf.numChildren == 2);
- p1 = tf.getChildAt(0) as ParagraphElement;
- p2 = tf.getChildAt(1) as ParagraphElement;
-
- assertTrue("BreaksSplitTest 3: p1 is incorrect after
split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) && p1.numChildren ==
1);
- assertTrue("BreaksSplitTest 3: p2 is incorrect after
split",p2 && !TextLayoutFormat.isEqual(p.format,p2.format) && p2.numChildren ==
1 &&
- p2.columnBreakAfter == undefined &&
- p2.columnBreakBefore == undefined &&
- p2.containerBreakAfter == undefined &&
- p2.containerBreakBefore == undefined);
-
- s1 = p1.getChildAt(0) as SpanElement;
- s2 = p2.getChildAt(0) as SpanElement;
-
- assertTrue("BreaksSplitTest 3: s1 is incorrect after
split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("BreaksSplitTest 3: s2 is incorrect after
split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT IN MIDDLE TEST
- }
- /**
- */
- public function splitStyledParagraphTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
-
- // a simple styled paragraph - always copy
- var p:ParagraphElement = new ParagraphElement();
- p.textAlign = TextAlign.LEFT;
- var s:SpanElement = new SpanElement();
- s.fontWeight = FontWeight.BOLD;
- s.text = "Hello";
- p.addChild(s);
-
- // scratch objects
- var p1:ParagraphElement;
- var p2:ParagraphElement;
- var s1:SpanElement;
- var s2:SpanElement;
-
-
- // BEGIN SPLIT AT BEGINNING TEST
-
- // setup
-
tf.replaceChildren(0,tf.numChildren,p.deepCopy(0,p.textLength));
- tf.flowComposer.updateAllControllers();
-
- // split at beginning
- SelManager.selectRange(0,0);
- EditManager(SelManager).splitParagraph();
-
- assertTrue("splitStyledParagraphTest 1: incorrect
number of children after split",tf.numChildren == 2);
- p1 = tf.getChildAt(0) as ParagraphElement;
- p2 = tf.getChildAt(1) as ParagraphElement;
-
- assertTrue("splitStyledParagraphTest 1: p1 is incorrect
after split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) &&
p1.numChildren == 1);
- assertTrue("splitStyledParagraphTest 1: p2 is incorrect
after split",p2 && TextLayoutFormat.isEqual(p.format,p2.format) &&
p2.numChildren == 1);
-
- s1 = p1.getChildAt(0) as SpanElement;
- s2 = p2.getChildAt(0) as SpanElement;
-
- assertTrue("splitStyledParagraphTest 1: s1 is incorrect
after split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("splitStyledParagraphTest 1: s2 is incorrect
after split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT AT BEGINNING TEST
-
- // BEGIN SPLIT AT END TEST
-
- // setup
-
tf.replaceChildren(0,tf.numChildren,p.deepCopy(0,p.textLength));
- tf.flowComposer.updateAllControllers();
-
- // split at end
- SelManager.selectRange(tf.textLength-1,tf.textLength-1);
- EditManager(SelManager).splitParagraph();
-
- assertTrue("splitStyledParagraphTest 2: incorrect
number of children after split",tf.numChildren == 2);
- p1 = tf.getChildAt(0) as ParagraphElement;
- p2 = tf.getChildAt(1) as ParagraphElement;
-
- assertTrue("splitStyledParagraphTest 2: p1 is incorrect
after split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) &&
p1.numChildren == 1);
- assertTrue("splitStyledParagraphTest 2: p2 is incorrect
after split",p2 && TextLayoutFormat.isEqual(p.format,p2.format) &&
p2.numChildren == 1);
-
- s1 = p1.getChildAt(0) as SpanElement;
- s2 = p2.getChildAt(0) as SpanElement;
-
- assertTrue("splitStyledParagraphTest 2: s1 is incorrect
after split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("splitStyledParagraphTest 2: s2 is incorrect
after split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT AT END TEST
-
- // BEGIN SPLIT IN MIDDLE TEST
-
- // setup
-
tf.replaceChildren(0,tf.numChildren,p.deepCopy(0,p.textLength));
- tf.flowComposer.updateAllControllers();
-
- // split at middle
- SelManager.selectRange(2,2);
- EditManager(SelManager).splitParagraph();
-
- assertTrue("splitStyledParagraphTest 3: incorrect
number of children after split",tf.numChildren == 2);
- p1 = tf.getChildAt(0) as ParagraphElement;
- p2 = tf.getChildAt(1) as ParagraphElement;
-
- assertTrue("splitStyledParagraphTest 3: p1 is incorrect
after split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) &&
p1.numChildren == 1);
- assertTrue("splitStyledParagraphTest 3: p2 is incorrect
after split",p2 && TextLayoutFormat.isEqual(p.format,p2.format) &&
p2.numChildren == 1);
-
- s1 = p1.getChildAt(0) as SpanElement;
- s2 = p2.getChildAt(0) as SpanElement;
-
- assertTrue("splitStyledParagraphTest 3: s1 is incorrect
after split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("splitStyledParagraphTest 3: s2 is incorrect
after split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT IN MIDDLE TEST
- }
-
- /**
- */
- public function splitStyledAnchorTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
-
- // a simple styled paragraph - always copy
- var p:ParagraphElement = new ParagraphElement();
- p.textAlign = TextAlign.LEFT;
- var s:SpanElement = new SpanElement();
- s.fontWeight = FontWeight.BOLD;
- s.text = "Hello";
- var a:LinkElement = new LinkElement();
- a.fontSize = 18;
- a.addChild(s);
- p.addChild(a);
-
- // scratch objects
- var p1:ParagraphElement;
- var p2:ParagraphElement;
- var s1:SpanElement;
- var s2:SpanElement;
-
-
- // BEGIN SPLIT AT BEGINNING TEST
-
- // setup
-
tf.replaceChildren(0,tf.numChildren,p.deepCopy(0,p.textLength));
- tf.flowComposer.updateAllControllers();
-
- // split at beginning
- SelManager.selectRange(0,0);
- EditManager(SelManager).splitParagraph();
-
- assertTrue("splitStyledParagraphTest 1: incorrect
number of children after split",tf.numChildren == 2);
- p1 = tf.getChildAt(0) as ParagraphElement;
- p2 = tf.getChildAt(1) as ParagraphElement;
-
- assertTrue("splitStyledParagraphTest 1: p1 is incorrect
after split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) &&
p1.numChildren == 1);
- assertTrue("splitStyledParagraphTest 1: p2 is incorrect
after split",p2 && TextLayoutFormat.isEqual(p.format,p2.format) &&
p2.numChildren == 1);
-
- s1 = p1.getChildAt(0) as SpanElement;
- s2 = (p2.getChildAt(0) as
FlowGroupElement).getChildAt(0) as SpanElement;
-
- assertTrue("splitStyledParagraphTest 1: s1 is incorrect
after split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("splitStyledParagraphTest 1: s2 is incorrect
after split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT AT BEGINNING TEST
-
- // BEGIN SPLIT AT END TEST
-
- // setup
-
tf.replaceChildren(0,tf.numChildren,p.deepCopy(0,p.textLength));
- tf.flowComposer.updateAllControllers();
-
- // split at end
- SelManager.selectRange(tf.textLength-1,tf.textLength-1);
- EditManager(SelManager).splitParagraph();
-
- assertTrue("splitStyledParagraphTest 2: incorrect
number of children after split",tf.numChildren == 2);
- p1 = tf.getChildAt(0) as ParagraphElement;
- p2 = tf.getChildAt(1) as ParagraphElement;
-
- assertTrue("splitStyledParagraphTest 2: p1 is incorrect
after split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) &&
p1.numChildren == 1);
- assertTrue("splitStyledParagraphTest 2: p2 is incorrect
after split",p2 && TextLayoutFormat.isEqual(p.format,p2.format) &&
p2.numChildren == 1);
-
- s1 = (p1.getChildAt(0) as
FlowGroupElement).getChildAt(0) as SpanElement;
- s2 = p2.getChildAt(0) as SpanElement;
-
- assertTrue("splitStyledParagraphTest 2: s1 is incorrect
after split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("splitStyledParagraphTest 2: s2 is incorrect
after split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT AT END TEST
-
- // BEGIN SPLIT IN MIDDLE TEST
-
- // setup
-
tf.replaceChildren(0,tf.numChildren,p.deepCopy(0,p.textLength));
- tf.flowComposer.updateAllControllers();
-
- // split at middle
- SelManager.selectRange(2,2);
- EditManager(SelManager).splitParagraph();
-
- assertTrue("splitStyledParagraphTest 3: incorrect
number of children after split",tf.numChildren == 2);
- p1 = tf.getChildAt(0) as ParagraphElement;
- p2 = tf.getChildAt(1) as ParagraphElement;
-
- assertTrue("splitStyledParagraphTest 3: p1 is incorrect
after split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) &&
p1.numChildren == 1);
- assertTrue("splitStyledParagraphTest 3: p2 is incorrect
after split",p2 && TextLayoutFormat.isEqual(p.format,p2.format) &&
p2.numChildren == 1);
-
- s1 = (p1.getChildAt(0) as
FlowGroupElement).getChildAt(0) as SpanElement;
- s2 = (p2.getChildAt(0) as
FlowGroupElement).getChildAt(0) as SpanElement;
-
- assertTrue("splitStyledParagraphTest 3: s1 is incorrect
after split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("splitStyledParagraphTest 3: s2 is incorrect
after split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT IN MIDDLE TEST
- }
-
- private static const listItemMarkup:String = "<TextFlow
xmlns='http://ns.adobe.com/textLayout/2008'><list
listStylePosition='inside'><li><p textAlign='left'><span
fontWeight='bold'>item</span></p></li></list></TextFlow>";
- /**
- */
- public function splitStyledListItemTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
-
- var listFlow:TextFlow =
TextConverter.importToFlow(listItemMarkup,TextConverter.TEXT_LAYOUT_FORMAT);
- var list:ListElement = listFlow.getChildAt(0) as
ListElement;
-
- var s:SpanElement = list.getFirstLeaf() as SpanElement;
- var p:ParagraphElement = s.parent as ParagraphElement;
-
- // scratch objects
- var p1:ParagraphElement;
- var p2:ParagraphElement;
- var s1:SpanElement;
- var s2:SpanElement;
- var listCopy:ListElement;
-
-
- // BEGIN SPLIT AT BEGINNING TEST
-
- // setup
- listCopy = list.deepCopy(0,list.textLength) as
ListElement;
- tf.replaceChildren(0,tf.numChildren,listCopy);
- tf.flowComposer.updateAllControllers();
-
- // split at beginning
- SelManager.selectRange(0,0);
-
EditManager(SelManager).splitElement(listCopy.getChildAt(0) as
FlowGroupElement);
-
- assertTrue("splitStyledListItemTest 1: incorrect number
of children after split",listCopy.numChildren == 2);
- p1 = (listCopy.getChildAt(0) as
FlowGroupElement).getChildAt(0) as ParagraphElement;
- p2 = (listCopy.getChildAt(1) as
FlowGroupElement).getChildAt(0) as ParagraphElement;
-
- assertTrue("splitStyledListItemTest 1: p1 is incorrect
after split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) &&
p1.numChildren == 1);
- assertTrue("splitStyledListItemTest 1: p2 is incorrect
after split",p2 && TextLayoutFormat.isEqual(p.format,p2.format) &&
p2.numChildren == 1);
-
- s1 = p1.getChildAt(0) as SpanElement;
- s2 = p2.getChildAt(0) as SpanElement;
-
- assertTrue("splitStyledListItemTest 1: s1 is incorrect
after split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("splitStyledListItemTest 1: s2 is incorrect
after split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT AT BEGINNING TEST
-
- // BEGIN SPLIT AT END TEST
-
- // setup
- listCopy = list.deepCopy(0,list.textLength) as
ListElement;
- tf.replaceChildren(0,tf.numChildren,listCopy);
- tf.flowComposer.updateAllControllers();
-
-
- // split at end
- SelManager.selectRange(tf.textLength-1,tf.textLength-1);
-
EditManager(SelManager).splitElement(listCopy.getChildAt(0) as
FlowGroupElement);
-
- assertTrue("splitStyledListItemTest 2: incorrect number
of children after split",listCopy.numChildren == 2);
- p1 = (listCopy.getChildAt(0) as
FlowGroupElement).getChildAt(0) as ParagraphElement;
- p2 = (listCopy.getChildAt(1) as
FlowGroupElement).getChildAt(0) as ParagraphElement;
-
- assertTrue("splitStyledListItemTest 2: p1 is incorrect
after split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) &&
p1.numChildren == 1);
- assertTrue("splitStyledListItemTest 2: p2 is incorrect
after split",p2 && TextLayoutFormat.isEqual(p.format,p2.format) &&
p2.numChildren == 1);
-
- s1 = p1.getChildAt(0) as SpanElement;
- s2 = p2.getChildAt(0) as SpanElement;
-
- assertTrue("splitStyledListItemTest 2: s1 is incorrect
after split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("splitStyledListItemTest 2: s2 is incorrect
after split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT AT END TEST
-
- // BEGIN SPLIT IN MIDDLE TEST
-
- // setup
- listCopy = list.deepCopy(0,list.textLength) as
ListElement;
- tf.replaceChildren(0,tf.numChildren,listCopy);
- tf.flowComposer.updateAllControllers();
-
- // split at middle
- SelManager.selectRange(2,2);
-
EditManager(SelManager).splitElement(listCopy.getChildAt(0) as
FlowGroupElement);
-
- assertTrue("splitStyledListItemTest 3: incorrect number
of children after split",listCopy.numChildren == 2);
- p1 = (listCopy.getChildAt(0) as
FlowGroupElement).getChildAt(0) as ParagraphElement;
- p2 = (listCopy.getChildAt(1) as
FlowGroupElement).getChildAt(0) as ParagraphElement;
-
- assertTrue("splitStyledListItemTest 3: p1 is incorrect
after split",p1 && TextLayoutFormat.isEqual(p.format,p1.format) &&
p1.numChildren == 1);
- assertTrue("splitStyledListItemTest 3: p2 is incorrect
after split",p2 && TextLayoutFormat.isEqual(p.format,p2.format) &&
p2.numChildren == 1);
-
- s1 = p1.getChildAt(0) as SpanElement;
- s2 = p2.getChildAt(0) as SpanElement;
-
- assertTrue("splitStyledListItemTest 3: s1 is incorrect
after split",s1 && TextLayoutFormat.isEqual(s.format,s1.format));
- assertTrue("splitStyledListItemTest 3: s2 is incorrect
after split",s2 && TextLayoutFormat.isEqual(s.format,s2.format));
-
- // END SPLIT IN MIDDLE TEST
- }
-
- public function spanElementReplaceTextInvalidPos():void
- {
- SelManager.selectAll();
- SelManager.deleteText();
-
- var paragraph:ParagraphElement = new ParagraphElement();
- var span:SpanElement = new SpanElement;
-
- span.text = "Does this text flow need to be composed?";
- paragraph.addChild(span);
- SelManager.textFlow.addChild(paragraph);
- SelManager.textFlow.flowComposer.updateAllControllers();
- span.replaceText(5, 9, "your");
-
if(SelManager.textFlow.flowComposer.getControllerAt(0).isDamaged())
- {
- span.text += " Yes it does.";
- }
-
- //try to replace text at start point <0, should return
error
- try
- {
- span.replaceText(-1, 2, "your");
- } catch(e:Error)
- {
- assertTrue ("replaceText should return error.",
e.message == "Invalid positions passed to SpanElement.replaceText");
- }
- //try to replace text at end point > text Length,
should return error
- try
- {
- var len:int = SelManager.textFlow.textLength;
- span.replaceText(5, len + 1, "your");
- } catch(e:Error)
- {
- assertTrue ("replaceText should return error.",
e.message == "Invalid positions passed to SpanElement.replaceText");
- }
- //try to replace text when end point < start point,
should return error
- try
- {
- span.replaceText(5, 3, "your");
- } catch(e:Error)
- {
- assertTrue ("replaceText should return error.",
e.message == "Invalid positions passed to SpanElement.replaceText");
- }
-
SelManager.textFlow.flowComposer.updateAllControllers();
- }
-
- public function copyErrorMassageTest():void
- {
- SelManager.selectAll();
- SelManager.deleteText();
-
- var p:ParagraphElement = new ParagraphElement();
- var span1:SpanElement = new SpanElement();
- var span2:SpanElement = new SpanElement();
- span1.text = "1æ°´zð#####%23456789"; //character
æ°´zð to make badSurrogatePairCopy error
-
- try{
- span2 = span1.shallowCopy(7, 6) as SpanElement;
- }catch (e:Error)
- {
- assertTrue("Invalid error message for
badShallowCopyRange", e.message = "Bad range in shallowCopy");
- }
- try{
- span2 = span1.shallowCopy(2, 4) as SpanElement;
- }catch (e:Error)
- {
- assertTrue("Invalid error message for
badSurrogatePairCopy", e.message = "Copying only half of a surrogate pair in
SpanElement.shallowCopy");
- }
- p.fontSize = 20;
- p.addChild(span1);
- p.addChild(span2);
-
- SelManager.textFlow.addChild(p);
-
SelManager.textFlow.flowComposer.updateAllControllers();
- }
-
- public function applyFormatToElementOperationFormatTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var styleName:String = "userStyleName";
- var newStyleValue:String = "newUserStyleValue";
- var format:TextLayoutFormat = new TextLayoutFormat();
- format.fontSize = 10;
- format.setStyle(styleName,newStyleValue);
- var op:ApplyFormatToElementOperation = new
ApplyFormatToElementOperation(SelManager.getSelectionState(),tf,format);
- //test format setter
- format.fontSize = 20;
- op.format = format;
- SelManager.doOperation(op);
- //test format getter
- assertTrue("format font size is not set correctly",
op.format.fontSize == 20 &&
- tf.getStyle(styleName) ==
"newUserStyleValue" );
- }
-
- public function typeNameSetGetTest():void
- {
- var tf:TextFlow = SelManager.textFlow;
- var newTypeName:String = "newTFTypeName1";
-
- var op:ApplyElementTypeNameOperation = new
ApplyElementTypeNameOperation(SelManager.getSelectionState(),tf,newTypeName);
- op.typeName = "newTFTypeName2";
- SelManager.doOperation(op);
- assertTrue("ApplyElementTypeNameOperation doesn't set
or get correct typeName", op.typeName == "newTFTypeName2");
- }
- }
-}