You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pi...@apache.org on 2014/10/30 07:53:27 UTC
git commit: [flex-tlf] [refs/heads/develop] - Add TabTest with
ingnored noTabStop test
Repository: flex-tlf
Updated Branches:
refs/heads/develop ac6b0473d -> 1d79e2499
Add TabTest with ingnored noTabStop test
Project: http://git-wip-us.apache.org/repos/asf/flex-tlf/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-tlf/commit/1d79e249
Tree: http://git-wip-us.apache.org/repos/asf/flex-tlf/tree/1d79e249
Diff: http://git-wip-us.apache.org/repos/asf/flex-tlf/diff/1d79e249
Branch: refs/heads/develop
Commit: 1d79e2499e99904036c54a14e792f186a1b31951
Parents: ac6b047
Author: piotrz <pi...@gmail.com>
Authored: Thu Oct 30 07:52:45 2014 +0100
Committer: piotrz <pi...@gmail.com>
Committed: Thu Oct 30 07:52:45 2014 +0100
----------------------------------------------------------------------
automation_tests/src/AllTestsSuite.as | 2 +
automation_tests/src/UnitTest/Tests/TabTest.as | 1087 ++++++++++---------
2 files changed, 558 insertions(+), 531 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/1d79e249/automation_tests/src/AllTestsSuite.as
----------------------------------------------------------------------
diff --git a/automation_tests/src/AllTestsSuite.as b/automation_tests/src/AllTestsSuite.as
index 641c924..74b3c55 100644
--- a/automation_tests/src/AllTestsSuite.as
+++ b/automation_tests/src/AllTestsSuite.as
@@ -39,6 +39,7 @@ package
import UnitTest.Tests.GeneralFunctionsTest;
import UnitTest.Tests.OperationTest;
import UnitTest.Tests.ScrollingTest;
+ import UnitTest.Tests.TabTest;
import UnitTest.Tests.TextFlowEditTest;
import UnitTest.Tests.UndoRedoTest;
import UnitTest.Tests.WritingModeTest;
@@ -70,6 +71,7 @@ package
public var writingModeTest:WritingModeTest;
public var undoRedoTest:UndoRedoTest;
public var textFlowEditTest:TextFlowEditTest;
+ public var tabTest:TabTest;
}
}
http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/1d79e249/automation_tests/src/UnitTest/Tests/TabTest.as
----------------------------------------------------------------------
diff --git a/automation_tests/src/UnitTest/Tests/TabTest.as b/automation_tests/src/UnitTest/Tests/TabTest.as
index 2195826..e6ea3d8 100644
--- a/automation_tests/src/UnitTest/Tests/TabTest.as
+++ b/automation_tests/src/UnitTest/Tests/TabTest.as
@@ -18,543 +18,568 @@
////////////////////////////////////////////////////////////////////////////////
package UnitTest.Tests
{
- import UnitTest.ExtendedClasses.TestSuiteExtended;
- import UnitTest.ExtendedClasses.VellumTestCase;
- import UnitTest.Fixtures.TestConfig;
+ import UnitTest.ExtendedClasses.VellumTestCase;
+ import UnitTest.Fixtures.TestConfig;
- import flash.text.engine.TabAlignment;
- import flash.text.engine.TextLine;
- import flash.geom.Rectangle;
+ import flash.geom.Rectangle;
+ import flash.text.engine.TabAlignment;
+ import flash.text.engine.TextLine;
- import flashx.textLayout.formats.ITextLayoutFormat;
- import flashx.textLayout.formats.TabStopFormat;
- import flashx.textLayout.formats.TextLayoutFormat;
+ import flashx.textLayout.formats.ITextLayoutFormat;
+ import flashx.textLayout.formats.TabStopFormat;
+ import flashx.textLayout.formats.TextLayoutFormat;
import org.flexunit.asserts.assertTrue;
-
public class TabTest extends VellumTestCase
- {
- public function TabTest(methodName:String, testID:String, testConfig:TestConfig, testCaseXML:XML=null)
- {
- super(methodName, testID, testConfig, testCaseXML);
-
- // Note: These must correspond to a Watson product area (case-sensitive)
- metaData.productArea = "Tabs";
- }
-
- public static function suiteFromXML(testListXML:XML, testConfig:TestConfig, ts:TestSuiteExtended):void
- {
- var testCaseClass:Class = TabTest;
- VellumTestCase.suiteFromXML(testCaseClass, testListXML, testConfig, ts);
- }
-
-
- /****************************************************
- Main codes strat here.
- Validate parsing of string-based tab stop formats
- ****************************************************/
-
- /* ************************************************************** */
- /* Enter tab without specifying tab stop */
- /* ************************************************************** */
-
- public function noTabStop():void
- {
- //change the text and recompose
- SelManager.selectAll();
- SelManager.deleteText();
- SelManager.insertText("\tN");
- TestFrame.flowComposer.updateAllControllers();
-
- // get the first line
- var initialLine:TextLine;
- initialLine = SelManager.textFlow.flowComposer.getLineAt(0).getTextLine(true);
-
- //default single tab value
- var tabValue:Number = 50;
-
- //get the position of the second character, "N"
- var valueAfterTab:Number;
- valueAfterTab = initialLine.getAtomBounds(1).left;
-
- //Check the the correct value is in the tab
- assertTrue("tab should be " + tabValue + " but is " + valueAfterTab, valueAfterTab == tabValue);
- }
-
- // TabStops string parsing for "Start"
- public function StartTabStopString():void
- {
- var p1:TextLayoutFormat = new TextLayoutFormat();
- p1.tabStops = "s300 S200 100";
- SelManager.applyParagraphFormat(p1);
-
- var p2:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
- assertTrue("Start tabStops could not be found", p2.tabStops != undefined);
-
- //Validating the alignment type string for start
- assertTrue("Not parsing tabStop string correctly for s300 (type)", p2.tabStops[2].alignment == TabAlignment.START);
- assertTrue("Not parsing tabStop string correctly for S200 (type)", p2.tabStops[1].alignment == TabAlignment.START);
- assertTrue("Not parsing tabStop string correctly for 100 (type)", p2.tabStops[0].alignment == TabAlignment.START);
-
- //Validating the alignment position for each tabStop
- assertTrue("Not parsing tabStop string correctly for s300 (position)", p2.tabStops[2].position == 300);
- assertTrue("Not parsing tabStop string correctly for S200 (position)", p2.tabStops[1].position == 200);
- assertTrue("Not parsing tabStop string correctly for 100 (position)", p2.tabStops[0].position == 100);
- }
-
-
- // TabStops string parsing for "Center"
- public function CenterTabStopString():void
- {
- var p3:TextLayoutFormat = new TextLayoutFormat();
- p3.tabStops = "c500 C400";
- SelManager.applyParagraphFormat(p3);
-
- var p4:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
- assertTrue("Center tabStops could not be found", p4.tabStops != undefined);
-
- //Validating the alignment type string for center
- assertTrue("Not parsing tabStop string correctly for c500 (type)", p4.tabStops[1].alignment == TabAlignment.CENTER);
- assertTrue("Not parsing tabStop string correctly for C400 (type)", p4.tabStops[0].alignment == TabAlignment.CENTER);
-
- //Validating the alignment position for each tabStop
- assertTrue("Not parsing tabStop string correctly for c500 (position)", p4.tabStops[1].position == 500);
- assertTrue("Not parsing tabStop string correctly for C400 (position)", p4.tabStops[0].position == 400);
- }
-
- // TabStops string parsing for "End"
- public function EndTabStopString():void
- {
- var p5:TextLayoutFormat = new TextLayoutFormat();
- p5.tabStops = "e700 E600";
- SelManager.applyParagraphFormat(p5);
-
- var p6:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
- assertTrue("End tabStops could not be found", p6.tabStops != undefined);
-
- //Validating the alignment type string for end
- assertTrue("Not parsing tabStop string correctly for e700 (type)", p6.tabStops[1].alignment == TabAlignment.END);
- assertTrue("Not parsing tabStop string correctly for E600 (type)", p6.tabStops[0].alignment == TabAlignment.END);
-
- //Validating the alignment position for each tabStop
- assertTrue("Not parsing tabStop string correctly for e700 (position)", p6.tabStops[1].position == 700);
- assertTrue("Not parsing tabStop string correctly for E600 (position)", p6.tabStops[0].position == 600);
- }
-
- // TabStops string parsing for "Decimal"
- public function DecimalTabStopString():void
- {
- var p7:TextLayoutFormat = new TextLayoutFormat();
- p7.tabStops = "d900 D800";
- SelManager.applyParagraphFormat(p7);
-
- var p8:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
- assertTrue("Decimal tabStops could not be found", p8.tabStops != undefined);
-
- //Validating the alignment type string for dicimal
- assertTrue("Not parsing tabStop string correctly for d900 (type)", p8.tabStops[1].alignment == TabAlignment.DECIMAL);
- assertTrue("Not parsing tabStop string correctly for D800 (type)", p8.tabStops[0].alignment == TabAlignment.DECIMAL);
-
- //Validating the alignment position for each tabStop
- assertTrue("Not parsing tabStop string correctly for d900 (position)", p8.tabStops[1].position == 900);
- assertTrue("Not parsing tabStop string correctly for D800 (position)", p8.tabStops[0].position == 800);
- }
-
- //Same position tabStops
- public function SamePositionTabStops():void
- {
- var p9:TextLayoutFormat = new TextLayoutFormat();
- p9.tabStops = "250 c250";
- SelManager.applyParagraphFormat(p9);
-
- var p10:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
- assertTrue("Same position tabStops could not be found", p10.tabStops != undefined);
-
- //Validating alignment type string for the same position tabStops
- assertTrue("Not parsing tabStop string correctly for 250 (type)", p10.tabStops[0].alignment == TabAlignment.START);
- assertTrue("Not parsing tabStop string correctly for c250 (type)", p10.tabStops[1].alignment == TabAlignment.CENTER);
-
- assertTrue("Not parsing tabStop string correctly for 250 (position)", p10.tabStops[0].position == 250);
- assertTrue("Not parsing tabStop string correctly for c250 (position)", p10.tabStops[1].position == 250);
- }
-
-
- public function UniqueNumberTabStops():void
- {
- //Decimal number
- var p11:TextLayoutFormat = new TextLayoutFormat();
- p11.tabStops = "100.345678";
- SelManager.applyParagraphFormat(p11);
-
- var p12:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
- assertTrue("Long decimal number tabStops could not be found", p12.tabStops != undefined);
-
- assertTrue("Not parsing tabStop string correctly for 100.345678 (type)", p12.tabStops[0].alignment == TabAlignment.START);
- assertTrue("Not parsing tabStop string correctly for 100.345678 (position)", p12.tabStops[0].position == 100.345678);
-
- //Number in scientific notation
- var p13:TextLayoutFormat = new TextLayoutFormat();
- p13.tabStops = "150.567e-2";
- SelManager.applyParagraphFormat(p13);
-
- var p14:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
- assertTrue("scientific notation tabStops could not be found", p14.tabStops != undefined);
-
- assertTrue("Not parsing tabStop string correctly for 150.567e-2 (type)", p14.tabStops[0].alignment == TabAlignment.START);
- assertTrue("Not parsing tabStop string correctly for 150.567e-2 (position)", p14.tabStops[0].position == 150.567e-2);
-
-
- //Very long tabStop string
- var p15:TextLayoutFormat = new TextLayoutFormat();
- p15.tabStops = "c34.789763333333";
- SelManager.applyParagraphFormat(p15);
-
- var p16:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
- assertTrue("Long string tabStops could not be found", p16.tabStops != undefined);
-
- assertTrue("Not parsing tabStop string correctly for c34.789763333333 (type)", p16.tabStops[0].alignment == TabAlignment.CENTER);
- assertTrue("Not parsing tabStop string correctly for c34.789763333333 (position)", p16.tabStops[0].position == 34.789763333333);
- }
-
-
- public function AlignmentToken():void
- {
- var p17:TextLayoutFormat = new TextLayoutFormat();
- p17.tabStops = "d10|. D20|\\\\ d30 D40|* d50|\\ ";
- SelManager.applyParagraphFormat(p17);
-
- var p18:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
- assertTrue("Alignment token tabStops could not be found", p18.tabStops != undefined);
-
- //Validating alignment tokens
- assertTrue("Not parsing tabStop string correctly for d10|. (alignment token)", p18.tabStops[0].decimalAlignmentToken == ".");
- assertTrue("Not parsing tabStop string correctly for D20|\\\\ (alignment token)", p18.tabStops[1].decimalAlignmentToken == "\\");
- assertTrue("Not parsing tabStop string correctly for d30 (alignment token)", p18.tabStops[2].decimalAlignmentToken == ".");
- assertTrue("Not parsing tabStop string correctly for D40|* (alignment token)", p18.tabStops[3].decimalAlignmentToken == "*");
- assertTrue("Not parsing tabStop string correctly for d50|\\ (algnment token)", p18.tabStops[4].decimalAlignmentToken == " ");
- }
-
- /* ************************************************************** */
- /* copy() method */
- /* ************************************************************** */
-
- public function copyMethod():void
- {
- //Create DECIMAL tabStop (receiving)
- var tabStop1:TabStopFormat = new TabStopFormat();
- tabStop1.alignment = flash.text.engine.TabAlignment.DECIMAL;
- tabStop1.decimalAlignmentToken = undefined;
- tabStop1.position = 200;
-
- //create another tabStop (incoming)
- var tabStop2:TabStopFormat = new TabStopFormat();
- tabStop2.alignment = flash.text.engine.TabAlignment.START;
- tabStop2.decimalAlignmentToken = ".";
- tabStop2.position = undefined;
-
- //Copy tabStop properies to tabStop1
- tabStop1.copy(tabStop2);
-
- //All properties should be copied from tabStop2 including "undefined" position value.
- assertTrue("Tab stop alignment should be copied to " + flash.text.engine.TabAlignment.START,
- tabStop1.alignment == flash.text.engine.TabAlignment.START);
- assertTrue("Tab stop align token should be copied to " + tabStop2.decimalAlignmentToken,
- tabStop1.decimalAlignmentToken == ".");
- assertTrue("tabstop position should be copied to ", + tabStop2.position, tabStop1.position == undefined);
- }
-
- /* ************************************************************** */
- /* copy() method with null values initializes object
- with undefined value for all properties*/
- /* ************************************************************** */
-
- public function copyNullObject():void
- {
- //Create DECIMAL tabStop (receiving)
- var tabStop1:TabStopFormat = new TabStopFormat();
- tabStop1.alignment = flash.text.engine.TabAlignment.DECIMAL;
- tabStop1.decimalAlignmentToken = undefined;
- tabStop1.position = 200;
-
- //Copy null object to tabStop2 (explicit difference from apply methond)
- tabStop1.copy(null);
-
- //All properties should be copied from tabStop2 including "undefined" position value.
- assertTrue("Tab stop alignment should not remain as " + flash.text.engine.TabAlignment.DECIMAL + " but, actually is "
- + tabStop1.alignment, tabStop1.alignment == undefined);
- assertTrue("Tab stop align token should remain as undefined but, actually is " + tabStop1.decimalAlignmentToken,
- tabStop1.decimalAlignmentToken == undefined);
- assertTrue("tabstop position should not remain as 200 but, actually is", + tabStop1.position, tabStop1.position == undefined);
- }
-
- /* ************************************************************** */
- /* concat() method */
- /* ************************************************************** */
-
- public function concatMethod():void
- {
- //Create tabstop with some properties set
- var tabStop1:TabStopFormat = new TabStopFormat();
- tabStop1.decimalAlignmentToken = ".";
- tabStop1.position = undefined;
-
- //Create another tabstop with all properties set
- var tabStop2:TabStopFormat = new TabStopFormat();
- tabStop2.alignment = flash.text.engine.TabAlignment.DECIMAL;
- tabStop2.decimalAlignmentToken = ",";
- tabStop2.position = 300;
-
- //Concatinate from incoming (no properties set) to receiving (all properties set)
- tabStop1.concat(tabStop2);
-
- //Alignment non-inheritable and becomes computed default value <START>
- assertTrue("Tab stop alignment should become START, but is actually " + tabStop1.alignment,
- tabStop1.alignment == flash.text.engine.TabAlignment.START);
- //decimal Alignment Token is set in both so it won't be concatieated
- assertTrue("Tab stop decimal alignnment token should not be " + tabStop2.decimalAlignmentToken + " and it should be " +
- tabStop1.decimalAlignmentToken, tabStop1.decimalAlignmentToken == ".");
- //position is non-heritable and becomes computed default value <0>
- assertTrue("Tab stop position should become 0, but is actually " + tabStop1.position, tabStop1.position == 0);
- }
-
-
- /* ************************************************************** */
- /* concatInheritOnly() method */
- /* ************************************************************** */
-
- public function concatInheritOnlyMethod():void
- {
- //create tabstop without setting propery value.
- var tabStop1:TabStopFormat = new TabStopFormat();
- tabStop1.decimalAlignmentToken = undefined;
- tabStop1.position = 300;
-
- //create tabstop with all property value set
- var tabStop2:TabStopFormat = new TabStopFormat();
- tabStop2.alignment = flash.text.engine.TabAlignment.DECIMAL;
- tabStop2.decimalAlignmentToken = ".";
- tabStop2.position = 200;
-
- //Concatinate inherit property only. (alignment, decimalAlignToken and position are non-inheritable property)
- tabStop1.concatInheritOnly(tabStop2);
-
- //alignmen should be remained as default in tabStop1
- assertTrue("Tab stop alignment should not be concatenated to " + tabStop2.alignment + " but is actually " +
- flash.text.engine.TabAlignment.DECIMAL, tabStop1.alignment == undefined);
- //decimalAlignToken should be remained as undefined as default in tabStop1
- assertTrue("Tab stop alignment token should not be concatenated to " + tabStop2.decimalAlignmentToken + " but is actually " +
- tabStop2.decimalAlignmentToken, tabStop1.decimalAlignmentToken == undefined);
- //position is set as "300" in tabStop1 and it shold not be concatenated by tabStop2
- assertTrue("Tab stop position should not be concatenated to " + tabStop2.position + " but is actually " +
- tabStop2.position, tabStop1.position == 300);
- }
-
- /* ************************************************************** */
- /* apply()
- /* ************************************************************** */
-
- public function applyMethod():void
- {
- //Create tabStop1 (receiving)
- var tabStop1:TabStopFormat = new TabStopFormat();
- tabStop1.alignment = flash.text.engine.TabAlignment.DECIMAL;
- tabStop1.decimalAlignmentToken = undefined;
- tabStop1.position = 200;
-
- //create tabStop2 (incoming)
- var tabStop2:TabStopFormat = new TabStopFormat();
- tabStop2.alignment = flash.text.engine.TabAlignment.START;
- tabStop2.decimalAlignmentToken = ".";
- tabStop2.position = undefined;
-
- //Apply tabStop properies to tabStop1
- tabStop1.apply(tabStop2);
-
- //All properties should be applied from tabStop2 excluding undefined value.
- assertTrue("tabstop1 alignment should be " + tabStop2.alignment + " but, actually is " + tabStop1.alignment,
- tabStop1.alignment == flash.text.engine.TabAlignment.START);
- assertTrue("decimalaligntopen should be " + tabStop2.decimalAlignmentToken + " but, actually is " + tabStop1.decimalAlignmentToken,
- tabStop1.decimalAlignmentToken == ".");
- //"undefined" value should not be applied
- assertTrue("tabstop1 position should be 200 " + "but, actually is " + tabStop2.position,
- tabStop1.position == 200);
- }
-
- /* ************************************************************** */
- /* isEqual() method (two objects are identical)*/
- /* ************************************************************** */
-
- public function twoSameObjects():void
- {
- //create tabStop1 object
- var tabStop1:TabStopFormat = new TabStopFormat();
- tabStop1.alignment = flash.text.engine.TabAlignment.START;
- tabStop1.decimalAlignmentToken = ".";
- tabStop1.position = 200;
-
- //create identical object, tabStop2
- var tabStop2:TabStopFormat = new TabStopFormat(tabStop1);
-
- //compare two object
- TabStopFormat.isEqual(tabStop1,tabStop2);
-
- var result:Boolean = TabStopFormat.isEqual(tabStop1,tabStop2);
-
- //two objects should be identical based on the result
- assertTrue("two objects are same and the result should be " + result, result == true);
- }
-
- /* ************************************************************** */
- /* isEqual() method (two objects are not identical)*/
- /* ************************************************************** */
-
- public function twoDifferentObjects():void
- {
- //create tabStop1 object including undefined value
- var tabStop1:TabStopFormat = new TabStopFormat();
- tabStop1.alignment = flash.text.engine.TabAlignment.DECIMAL;
- tabStop1.decimalAlignmentToken = ".";
- tabStop1.position = undefined;
-
- //create identical object, tabStop2
- var tabStop2:TabStopFormat = new TabStopFormat();
- tabStop2.alignment = flash.text.engine.TabAlignment.END;
- tabStop2.decimalAlignmentToken = undefined;
- tabStop2.position = 300;
-
- //compare two object
- TabStopFormat.isEqual(tabStop1,tabStop2);
-
- var result:Boolean = TabStopFormat.isEqual(tabStop1,tabStop2);
-
- //two objects are not identical based on the result
- assertTrue("two objects are not identical and the result should be " + result, result == false);
- }
-
- /* ************************************************************** */
- /* removeClashing() method */
- /* ************************************************************** */
- // tabStop1 and tabStop2 has differnt property values
- public function removeClashing():void
- {
- //Create DECIMAL tabStop1 (receiving)
- var tabStop1:TabStopFormat = new TabStopFormat();
- tabStop1.alignment = flash.text.engine.TabAlignment.DECIMAL;
- tabStop1.decimalAlignmentToken = ",";
- tabStop1.position = 200;
-
- //create another tabStop (incoming) with different property values
- var tabStop2:TabStopFormat = new TabStopFormat();
- tabStop2.alignment = flash.text.engine.TabAlignment.START;
- tabStop2.decimalAlignmentToken = ".";
- tabStop2.position = 100;
-
- //run removeClashing method
- tabStop1.removeClashing(tabStop2);
-
- //Sets properties in tabStop1 to undefined if they do not match those in the tabStop2 (incoming).
- assertTrue("Tab stop alignment should be undefined, but actually is " + tabStop1.alignment,
- tabStop1.alignment == undefined);
- assertTrue("Tab stop align token should be undefined, but actually is " + tabStop1.decimalAlignmentToken,
- tabStop1.decimalAlignmentToken == undefined);
- assertTrue("tabstop position should be undefined, but actually is ", + tabStop1.position, tabStop1.position == undefined);
- }
-
- /* ************************************************************** */
- /* removeMatching() method */
- /* ************************************************************** */
-
- public function removeMatching():void
- {
- //Create DECIMAL tabStop1 (receiving)
- var tabStop1:TabStopFormat = new TabStopFormat();
- tabStop1.alignment = flash.text.engine.TabAlignment.DECIMAL;
- tabStop1.decimalAlignmentToken = ",";
- tabStop1.position = 200;
-
- //create another tabStop object (incoming) wtih same property values
- var tabStop2:TabStopFormat = new TabStopFormat();
- tabStop2.alignment = flash.text.engine.TabAlignment.DECIMAL;
- tabStop2.decimalAlignmentToken = ",";
- tabStop2.position = 200;
-
- //run removeMatching method
- tabStop1.removeMatching(tabStop2);
-
- //Sets properties in tabStop1 to undefined if they do not match those in the tabStop2 (incoming).
- assertTrue("Tab stop alignment should be undefined, but actually is " + tabStop1.alignment,
- tabStop1.alignment == undefined);
- assertTrue("Tab stop align token should be undefined, but actually is " + tabStop1.decimalAlignmentToken,
- tabStop1.decimalAlignmentToken == undefined);
- assertTrue("tab stop position should be undefined, but actually is ", + tabStop1.position,
- tabStop1.position == undefined);
- }
-
- //wating for a bug fix : Bug # 2275363
- /***
- public function InvalidTabStopString():void
- {
- var p19:TextLayoutFormat = new TextLayoutFormat();
- p19.tabStops = "k300";
- SelManager.applyParagraphFormat(p19);
-
- var p20:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
- assertTrue("Parsing invalid tabStop string!", p20.tabStops == undefined);
-
- }
- ***/
- //automate a end TAB bug test. When End Tab has a long string value, it didn't display correctly. It is a Player bug.
- public function endTabLongStringTest():void
- {
- SelManager.selectAll();
- SelManager.deleteText();
- SelManager.insertText("\tAAAAAAA\tBBBBBB");
-
- var tlf:TextLayoutFormat = new TextLayoutFormat();
-
- //the long string value is the correct test data. Since this is a Player bug, we can't check in the correct test data until Player fixes the bug.
- //Need to remove the comment to check in the correct test data once Player fixes the bug.
- tlf.tabStops = "e700 e269";
- //tlf.tabStops = "e700 e269.1499999999998";
- SelManager.applyParagraphFormat(tlf);
- TestFrame.flowComposer.updateAllControllers();
-
- var tl:TextLine = SelManager.textFlow.flowComposer.getLineAt(0).getTextLine();
- //second end TAB start at position 8
- var bounds:Rectangle = tl.getAtomBounds(8);
- var W:Number = bounds.width;
-
- assertTrue("end TAB was not displayed when end Tab with long string value.", W != 0);
- }
-
- public function TabStopFormatTest():void
- {
- SelManager.selectAll();
- SelManager.deleteText();
- SelManager.insertText("1\txxx\txxx\txxx\n2\tyyyyyy\tyyyyyy\tyyyyyy\n3\tzz\tzz\tzz");
-
- var format:TextLayoutFormat = new TextLayoutFormat();
- var tabStop1:TabStopFormat = new TabStopFormat();
- var tabStop2:TabStopFormat = new TabStopFormat();
- var tabStop3:TabStopFormat = new TabStopFormat();
-
- tabStop1.alignment = flash.text.engine.TabAlignment.START;
- var posSet:int = 300;
- tabStop1.setStyle("position", posSet);
- var posAfterGet:int = tabStop1.getStyle("position");
- assertTrue("position after getStyle doesn't match the position set", posSet == posAfterGet);
-
- tabStop2.alignment = flash.text.engine.TabAlignment.CENTER;
- tabStop2.position = 150;
- tabStop3.alignment = flash.text.engine.TabAlignment.END;
- tabStop3.position = 250;
- format.tabStops = new Array(tabStop1,tabStop2,tabStop3);
- SelManager.textFlow.hostFormat = format;
- SelManager.textFlow.flowComposer.updateAllControllers();
- }
-
- }
+ {
+ public function TabTest()
+ {
+ super("", "TabTest", TestConfig.getInstance());
+
+ metaData = {};
+ // Note: These must correspond to a Watson product area (case-sensitive)
+ metaData.productArea = "Tabs";
+ }
+
+ [Before]
+ override public function setUpTest():void
+ {
+ super.setUpTest();
+ }
+
+ [After]
+ override public function tearDownTest():void
+ {
+ super.tearDownTest();
+ }
+
+ /****************************************************
+ Main codes strat here.
+ Validate parsing of string-based tab stop formats
+ ****************************************************/
+
+ [Test]
+ [Ignore]
+ /**
+ * Enter tab without specifying tab stop
+ */
+ public function noTabStop():void
+ {
+ //change the text and recompose
+ SelManager.selectAll();
+ SelManager.deleteText();
+ SelManager.insertText("\tN");
+ TestFrame.flowComposer.updateAllControllers();
+
+ // get the first line
+ var initialLine:TextLine;
+ initialLine = SelManager.textFlow.flowComposer.getLineAt(0).getTextLine(true);
+
+ //default single tab value
+ var tabValue:Number = 50;
+
+ //get the position of the second character, "N"
+ var valueAfterTab:Number;
+ valueAfterTab = initialLine.getAtomBounds(1).left;
+
+ //Check the the correct value is in the tab
+ assertTrue("tab should be " + tabValue + " but is " + valueAfterTab, valueAfterTab == tabValue);
+ }
+
+ [Test]
+ /**
+ * TabStops string parsing for "Start"
+ */
+ public function startTabStopString():void
+ {
+ var p1:TextLayoutFormat = new TextLayoutFormat();
+ p1.tabStops = "s300 S200 100";
+ SelManager.applyParagraphFormat(p1);
+
+ var p2:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
+ assertTrue("Start tabStops could not be found", p2.tabStops != undefined);
+
+ //Validating the alignment type string for start
+ assertTrue("Not parsing tabStop string correctly for s300 (type)", p2.tabStops[2].alignment == TabAlignment.START);
+ assertTrue("Not parsing tabStop string correctly for S200 (type)", p2.tabStops[1].alignment == TabAlignment.START);
+ assertTrue("Not parsing tabStop string correctly for 100 (type)", p2.tabStops[0].alignment == TabAlignment.START);
+
+ //Validating the alignment position for each tabStop
+ assertTrue("Not parsing tabStop string correctly for s300 (position)", p2.tabStops[2].position == 300);
+ assertTrue("Not parsing tabStop string correctly for S200 (position)", p2.tabStops[1].position == 200);
+ assertTrue("Not parsing tabStop string correctly for 100 (position)", p2.tabStops[0].position == 100);
+ }
+
+
+ [Test]
+ /**
+ * TabStops string parsing for "Center"
+ */
+ public function centerTabStopString():void
+ {
+ var p3:TextLayoutFormat = new TextLayoutFormat();
+ p3.tabStops = "c500 C400";
+ SelManager.applyParagraphFormat(p3);
+
+ var p4:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
+ assertTrue("Center tabStops could not be found", p4.tabStops != undefined);
+
+ //Validating the alignment type string for center
+ assertTrue("Not parsing tabStop string correctly for c500 (type)", p4.tabStops[1].alignment == TabAlignment.CENTER);
+ assertTrue("Not parsing tabStop string correctly for C400 (type)", p4.tabStops[0].alignment == TabAlignment.CENTER);
+
+ //Validating the alignment position for each tabStop
+ assertTrue("Not parsing tabStop string correctly for c500 (position)", p4.tabStops[1].position == 500);
+ assertTrue("Not parsing tabStop string correctly for C400 (position)", p4.tabStops[0].position == 400);
+ }
+
+ [Test]
+ /**
+ * TabStops string parsing for "End"
+ */
+ public function endTabStopString():void
+ {
+ var p5:TextLayoutFormat = new TextLayoutFormat();
+ p5.tabStops = "e700 E600";
+ SelManager.applyParagraphFormat(p5);
+
+ var p6:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
+ assertTrue("End tabStops could not be found", p6.tabStops != undefined);
+
+ //Validating the alignment type string for end
+ assertTrue("Not parsing tabStop string correctly for e700 (type)", p6.tabStops[1].alignment == TabAlignment.END);
+ assertTrue("Not parsing tabStop string correctly for E600 (type)", p6.tabStops[0].alignment == TabAlignment.END);
+
+ //Validating the alignment position for each tabStop
+ assertTrue("Not parsing tabStop string correctly for e700 (position)", p6.tabStops[1].position == 700);
+ assertTrue("Not parsing tabStop string correctly for E600 (position)", p6.tabStops[0].position == 600);
+ }
+
+ [Test]
+ /**
+ * TabStops string parsing for "Decimal"
+ */
+ public function decimalTabStopString():void
+ {
+ var p7:TextLayoutFormat = new TextLayoutFormat();
+ p7.tabStops = "d900 D800";
+ SelManager.applyParagraphFormat(p7);
+
+ var p8:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
+ assertTrue("Decimal tabStops could not be found", p8.tabStops != undefined);
+
+ //Validating the alignment type string for dicimal
+ assertTrue("Not parsing tabStop string correctly for d900 (type)", p8.tabStops[1].alignment == TabAlignment.DECIMAL);
+ assertTrue("Not parsing tabStop string correctly for D800 (type)", p8.tabStops[0].alignment == TabAlignment.DECIMAL);
+
+ //Validating the alignment position for each tabStop
+ assertTrue("Not parsing tabStop string correctly for d900 (position)", p8.tabStops[1].position == 900);
+ assertTrue("Not parsing tabStop string correctly for D800 (position)", p8.tabStops[0].position == 800);
+ }
+
+ [Test]
+ /**
+ * Same position tabStops
+ */
+ public function samePositionTabStops():void
+ {
+ var p9:TextLayoutFormat = new TextLayoutFormat();
+ p9.tabStops = "250 c250";
+ SelManager.applyParagraphFormat(p9);
+
+ var p10:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
+ assertTrue("Same position tabStops could not be found", p10.tabStops != undefined);
+
+ //Validating alignment type string for the same position tabStops
+ assertTrue("Not parsing tabStop string correctly for 250 (type)", p10.tabStops[0].alignment == TabAlignment.START);
+ assertTrue("Not parsing tabStop string correctly for c250 (type)", p10.tabStops[1].alignment == TabAlignment.CENTER);
+
+ assertTrue("Not parsing tabStop string correctly for 250 (position)", p10.tabStops[0].position == 250);
+ assertTrue("Not parsing tabStop string correctly for c250 (position)", p10.tabStops[1].position == 250);
+ }
+
+ [Test]
+ public function uniqueNumberTabStops():void
+ {
+ //Decimal number
+ var p11:TextLayoutFormat = new TextLayoutFormat();
+ p11.tabStops = "100.345678";
+ SelManager.applyParagraphFormat(p11);
+
+ var p12:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
+ assertTrue("Long decimal number tabStops could not be found", p12.tabStops != undefined);
+
+ assertTrue("Not parsing tabStop string correctly for 100.345678 (type)", p12.tabStops[0].alignment == TabAlignment.START);
+ assertTrue("Not parsing tabStop string correctly for 100.345678 (position)", p12.tabStops[0].position == 100.345678);
+
+ //Number in scientific notation
+ var p13:TextLayoutFormat = new TextLayoutFormat();
+ p13.tabStops = "150.567e-2";
+ SelManager.applyParagraphFormat(p13);
+
+ var p14:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
+ assertTrue("scientific notation tabStops could not be found", p14.tabStops != undefined);
+
+ assertTrue("Not parsing tabStop string correctly for 150.567e-2 (type)", p14.tabStops[0].alignment == TabAlignment.START);
+ assertTrue("Not parsing tabStop string correctly for 150.567e-2 (position)", p14.tabStops[0].position == 150.567e-2);
+
+
+ //Very long tabStop string
+ var p15:TextLayoutFormat = new TextLayoutFormat();
+ p15.tabStops = "c34.789763333333";
+ SelManager.applyParagraphFormat(p15);
+
+ var p16:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
+ assertTrue("Long string tabStops could not be found", p16.tabStops != undefined);
+
+ assertTrue("Not parsing tabStop string correctly for c34.789763333333 (type)", p16.tabStops[0].alignment == TabAlignment.CENTER);
+ assertTrue("Not parsing tabStop string correctly for c34.789763333333 (position)", p16.tabStops[0].position == 34.789763333333);
+ }
+
+ [Test]
+ public function alignmentToken():void
+ {
+ var p17:TextLayoutFormat = new TextLayoutFormat();
+ p17.tabStops = "d10|. D20|\\\\ d30 D40|* d50|\\ ";
+ SelManager.applyParagraphFormat(p17);
+
+ var p18:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
+ assertTrue("Alignment token tabStops could not be found", p18.tabStops != undefined);
+
+ //Validating alignment tokens
+ assertTrue("Not parsing tabStop string correctly for d10|. (alignment token)", p18.tabStops[0].decimalAlignmentToken == ".");
+ assertTrue("Not parsing tabStop string correctly for D20|\\\\ (alignment token)", p18.tabStops[1].decimalAlignmentToken == "\\");
+ assertTrue("Not parsing tabStop string correctly for d30 (alignment token)", p18.tabStops[2].decimalAlignmentToken == ".");
+ assertTrue("Not parsing tabStop string correctly for D40|* (alignment token)", p18.tabStops[3].decimalAlignmentToken == "*");
+ assertTrue("Not parsing tabStop string correctly for d50|\\ (algnment token)", p18.tabStops[4].decimalAlignmentToken == " ");
+ }
+
+ [Test]
+ /**
+ * copy() method
+ */
+ public function copyMethod():void
+ {
+ //Create DECIMAL tabStop (receiving)
+ var tabStop1:TabStopFormat = new TabStopFormat();
+ tabStop1.alignment = TabAlignment.DECIMAL;
+ tabStop1.decimalAlignmentToken = undefined;
+ tabStop1.position = 200;
+
+ //create another tabStop (incoming)
+ var tabStop2:TabStopFormat = new TabStopFormat();
+ tabStop2.alignment = TabAlignment.START;
+ tabStop2.decimalAlignmentToken = ".";
+ tabStop2.position = undefined;
+
+ //Copy tabStop properies to tabStop1
+ tabStop1.copy(tabStop2);
+
+ //All properties should be copied from tabStop2 including "undefined" position value.
+ assertTrue("Tab stop alignment should be copied to " + TabAlignment.START,
+ tabStop1.alignment == TabAlignment.START);
+ assertTrue("Tab stop align token should be copied to " + tabStop2.decimalAlignmentToken,
+ tabStop1.decimalAlignmentToken == ".");
+ assertTrue("tabstop position should be copied to ", +tabStop2.position, tabStop1.position == undefined);
+ }
+
+ [Test]
+ /**
+ * copy() method with null values initializes object
+ * with undefined value for all properties
+ */
+ public function copyNullObject():void
+ {
+ //Create DECIMAL tabStop (receiving)
+ var tabStop1:TabStopFormat = new TabStopFormat();
+ tabStop1.alignment = TabAlignment.DECIMAL;
+ tabStop1.decimalAlignmentToken = undefined;
+ tabStop1.position = 200;
+
+ //Copy null object to tabStop2 (explicit difference from apply methond)
+ tabStop1.copy(null);
+
+ //All properties should be copied from tabStop2 including "undefined" position value.
+ assertTrue("Tab stop alignment should not remain as " + TabAlignment.DECIMAL + " but, actually is "
+ + tabStop1.alignment, tabStop1.alignment == undefined);
+ assertTrue("Tab stop align token should remain as undefined but, actually is " + tabStop1.decimalAlignmentToken,
+ tabStop1.decimalAlignmentToken == undefined);
+ assertTrue("tabstop position should not remain as 200 but, actually is", +tabStop1.position, tabStop1.position == undefined);
+ }
+
+ [Test]
+ /**
+ * concat() method
+ */
+ public function concatMethod():void
+ {
+ //Create tabstop with some properties set
+ var tabStop1:TabStopFormat = new TabStopFormat();
+ tabStop1.decimalAlignmentToken = ".";
+ tabStop1.position = undefined;
+
+ //Create another tabstop with all properties set
+ var tabStop2:TabStopFormat = new TabStopFormat();
+ tabStop2.alignment = TabAlignment.DECIMAL;
+ tabStop2.decimalAlignmentToken = ",";
+ tabStop2.position = 300;
+
+ //Concatinate from incoming (no properties set) to receiving (all properties set)
+ tabStop1.concat(tabStop2);
+
+ //Alignment non-inheritable and becomes computed default value <START>
+ assertTrue("Tab stop alignment should become START, but is actually " + tabStop1.alignment,
+ tabStop1.alignment == TabAlignment.START);
+ //decimal Alignment Token is set in both so it won't be concatieated
+ assertTrue("Tab stop decimal alignnment token should not be " + tabStop2.decimalAlignmentToken + " and it should be " +
+ tabStop1.decimalAlignmentToken, tabStop1.decimalAlignmentToken == ".");
+ //position is non-heritable and becomes computed default value <0>
+ assertTrue("Tab stop position should become 0, but is actually " + tabStop1.position, tabStop1.position == 0);
+ }
+
+ [Test]
+ /**
+ * concatInheritOnly() method
+ */
+ public function concatInheritOnlyMethod():void
+ {
+ //create tabstop without setting propery value.
+ var tabStop1:TabStopFormat = new TabStopFormat();
+ tabStop1.decimalAlignmentToken = undefined;
+ tabStop1.position = 300;
+
+ //create tabstop with all property value set
+ var tabStop2:TabStopFormat = new TabStopFormat();
+ tabStop2.alignment = TabAlignment.DECIMAL;
+ tabStop2.decimalAlignmentToken = ".";
+ tabStop2.position = 200;
+
+ //Concatinate inherit property only. (alignment, decimalAlignToken and position are non-inheritable property)
+ tabStop1.concatInheritOnly(tabStop2);
+
+ //alignmen should be remained as default in tabStop1
+ assertTrue("Tab stop alignment should not be concatenated to " + tabStop2.alignment + " but is actually " +
+ TabAlignment.DECIMAL, tabStop1.alignment == undefined);
+ //decimalAlignToken should be remained as undefined as default in tabStop1
+ assertTrue("Tab stop alignment token should not be concatenated to " + tabStop2.decimalAlignmentToken + " but is actually " +
+ tabStop2.decimalAlignmentToken, tabStop1.decimalAlignmentToken == undefined);
+ //position is set as "300" in tabStop1 and it shold not be concatenated by tabStop2
+ assertTrue("Tab stop position should not be concatenated to " + tabStop2.position + " but is actually " +
+ tabStop2.position, tabStop1.position == 300);
+ }
+
+ [Test]
+ /**
+ * apply()
+ */
+ public function applyMethod():void
+ {
+ //Create tabStop1 (receiving)
+ var tabStop1:TabStopFormat = new TabStopFormat();
+ tabStop1.alignment = TabAlignment.DECIMAL;
+ tabStop1.decimalAlignmentToken = undefined;
+ tabStop1.position = 200;
+
+ //create tabStop2 (incoming)
+ var tabStop2:TabStopFormat = new TabStopFormat();
+ tabStop2.alignment = TabAlignment.START;
+ tabStop2.decimalAlignmentToken = ".";
+ tabStop2.position = undefined;
+
+ //Apply tabStop properies to tabStop1
+ tabStop1.apply(tabStop2);
+
+ //All properties should be applied from tabStop2 excluding undefined value.
+ assertTrue("tabstop1 alignment should be " + tabStop2.alignment + " but, actually is " + tabStop1.alignment,
+ tabStop1.alignment == TabAlignment.START);
+ assertTrue("decimalaligntopen should be " + tabStop2.decimalAlignmentToken + " but, actually is " + tabStop1.decimalAlignmentToken,
+ tabStop1.decimalAlignmentToken == ".");
+ //"undefined" value should not be applied
+ assertTrue("tabstop1 position should be 200 " + "but, actually is " + tabStop2.position,
+ tabStop1.position == 200);
+ }
+
+ [Test]
+ /**
+ * isEqual() method (two objects are identical)
+ */
+ public function twoSameObjects():void
+ {
+ //create tabStop1 object
+ var tabStop1:TabStopFormat = new TabStopFormat();
+ tabStop1.alignment = TabAlignment.START;
+ tabStop1.decimalAlignmentToken = ".";
+ tabStop1.position = 200;
+
+ //create identical object, tabStop2
+ var tabStop2:TabStopFormat = new TabStopFormat(tabStop1);
+
+ //compare two object
+ TabStopFormat.isEqual(tabStop1, tabStop2);
+
+ var result:Boolean = TabStopFormat.isEqual(tabStop1, tabStop2);
+
+ //two objects should be identical based on the result
+ assertTrue("two objects are same and the result should be " + result, result == true);
+ }
+
+ [Test]
+ /**
+ * isEqual() method (two objects are not identical)
+ */
+ public function twoDifferentObjects():void
+ {
+ //create tabStop1 object including undefined value
+ var tabStop1:TabStopFormat = new TabStopFormat();
+ tabStop1.alignment = TabAlignment.DECIMAL;
+ tabStop1.decimalAlignmentToken = ".";
+ tabStop1.position = undefined;
+
+ //create identical object, tabStop2
+ var tabStop2:TabStopFormat = new TabStopFormat();
+ tabStop2.alignment = TabAlignment.END;
+ tabStop2.decimalAlignmentToken = undefined;
+ tabStop2.position = 300;
+
+ //compare two object
+ TabStopFormat.isEqual(tabStop1, tabStop2);
+
+ var result:Boolean = TabStopFormat.isEqual(tabStop1, tabStop2);
+
+ //two objects are not identical based on the result
+ assertTrue("two objects are not identical and the result should be " + result, result == false);
+ }
+
+ [Test]
+ /**
+ * removeClashing() method
+ * tabStop1 and tabStop2 has differnt property values
+ */
+ public function removeClashing():void
+ {
+ //Create DECIMAL tabStop1 (receiving)
+ var tabStop1:TabStopFormat = new TabStopFormat();
+ tabStop1.alignment = TabAlignment.DECIMAL;
+ tabStop1.decimalAlignmentToken = ",";
+ tabStop1.position = 200;
+
+ //create another tabStop (incoming) with different property values
+ var tabStop2:TabStopFormat = new TabStopFormat();
+ tabStop2.alignment = TabAlignment.START;
+ tabStop2.decimalAlignmentToken = ".";
+ tabStop2.position = 100;
+
+ //run removeClashing method
+ tabStop1.removeClashing(tabStop2);
+
+ //Sets properties in tabStop1 to undefined if they do not match those in the tabStop2 (incoming).
+ assertTrue("Tab stop alignment should be undefined, but actually is " + tabStop1.alignment,
+ tabStop1.alignment == undefined);
+ assertTrue("Tab stop align token should be undefined, but actually is " + tabStop1.decimalAlignmentToken,
+ tabStop1.decimalAlignmentToken == undefined);
+ assertTrue("tabstop position should be undefined, but actually is ", +tabStop1.position, tabStop1.position == undefined);
+ }
+
+ [Test]
+ /**
+ * removeMatching() method
+ */
+ public function removeMatching():void
+ {
+ //Create DECIMAL tabStop1 (receiving)
+ var tabStop1:TabStopFormat = new TabStopFormat();
+ tabStop1.alignment = TabAlignment.DECIMAL;
+ tabStop1.decimalAlignmentToken = ",";
+ tabStop1.position = 200;
+
+ //create another tabStop object (incoming) wtih same property values
+ var tabStop2:TabStopFormat = new TabStopFormat();
+ tabStop2.alignment = TabAlignment.DECIMAL;
+ tabStop2.decimalAlignmentToken = ",";
+ tabStop2.position = 200;
+
+ //run removeMatching method
+ tabStop1.removeMatching(tabStop2);
+
+ //Sets properties in tabStop1 to undefined if they do not match those in the tabStop2 (incoming).
+ assertTrue("Tab stop alignment should be undefined, but actually is " + tabStop1.alignment,
+ tabStop1.alignment == undefined);
+ assertTrue("Tab stop align token should be undefined, but actually is " + tabStop1.decimalAlignmentToken,
+ tabStop1.decimalAlignmentToken == undefined);
+ assertTrue("tab stop position should be undefined, but actually is ", +tabStop1.position,
+ tabStop1.position == undefined);
+ }
+
+ //wating for a bug fix : Bug # 2275363
+ /***
+ public function InvalidTabStopString():void
+ {
+ var p19:TextLayoutFormat = new TextLayoutFormat();
+ p19.tabStops = "k300";
+ SelManager.applyParagraphFormat(p19);
+
+ var p20:ITextLayoutFormat = SelManager.getCommonParagraphFormat();
+ assertTrue("Parsing invalid tabStop string!", p20.tabStops == undefined);
+
+ }
+ ***/
+
+ [Test]
+ /**
+ * automate a end TAB bug test. When End Tab has a long string value, it didn't display correctly. It is a Player bug.
+ */
+ public function endTabLongStringTest():void
+ {
+ SelManager.selectAll();
+ SelManager.deleteText();
+ SelManager.insertText("\tAAAAAAA\tBBBBBB");
+
+ var tlf:TextLayoutFormat = new TextLayoutFormat();
+
+ //the long string value is the correct test data. Since this is a Player bug, we can't check in the correct test data until Player fixes the bug.
+ //Need to remove the comment to check in the correct test data once Player fixes the bug.
+ tlf.tabStops = "e700 e269";
+ //tlf.tabStops = "e700 e269.1499999999998";
+ SelManager.applyParagraphFormat(tlf);
+ TestFrame.flowComposer.updateAllControllers();
+
+ var tl:TextLine = SelManager.textFlow.flowComposer.getLineAt(0).getTextLine();
+ //second end TAB start at position 8
+ var bounds:Rectangle = tl.getAtomBounds(8);
+ var W:Number = bounds.width;
+
+ assertTrue("end TAB was not displayed when end Tab with long string value.", W != 0);
+ }
+
+ [Test]
+ public function TabStopFormatTest():void
+ {
+ SelManager.selectAll();
+ SelManager.deleteText();
+ SelManager.insertText("1\txxx\txxx\txxx\n2\tyyyyyy\tyyyyyy\tyyyyyy\n3\tzz\tzz\tzz");
+
+ var format:TextLayoutFormat = new TextLayoutFormat();
+ var tabStop1:TabStopFormat = new TabStopFormat();
+ var tabStop2:TabStopFormat = new TabStopFormat();
+ var tabStop3:TabStopFormat = new TabStopFormat();
+
+ tabStop1.alignment = TabAlignment.START;
+ var posSet:int = 300;
+ tabStop1.setStyle("position", posSet);
+ var posAfterGet:int = tabStop1.getStyle("position");
+ assertTrue("position after getStyle doesn't match the position set", posSet == posAfterGet);
+
+ tabStop2.alignment = TabAlignment.CENTER;
+ tabStop2.position = 150;
+ tabStop3.alignment = TabAlignment.END;
+ tabStop3.position = 250;
+ format.tabStops = new Array(tabStop1, tabStop2, tabStop3);
+ SelManager.textFlow.hostFormat = format;
+ SelManager.textFlow.flowComposer.updateAllControllers();
+ }
+
+ }
}