| //////////////////////////////////////////////////////////////////////////////// |
| // |
| // Licensed to the Apache Software Foundation (ASF) under one or more |
| // contributor license agreements. See the NOTICE file distributed with |
| // this work for additional information regarding copyright ownership. |
| // The ASF licenses this file to You under the Apache License, Version 2.0 |
| // (the "License"); you may not use this file except in compliance with |
| // the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // |
| //////////////////////////////////////////////////////////////////////////////// |
| package UnitTest.Tests |
| { |
| import UnitTest.ExtendedClasses.VellumTestCase; |
| import UnitTest.Fixtures.FileRepository; |
| import UnitTest.Fixtures.TestConfig; |
| |
| import flash.events.KeyboardEvent; |
| import flash.ui.KeyLocation; |
| |
| import flashx.textLayout.container.ScrollPolicy; |
| import flashx.textLayout.conversion.*; |
| import flashx.textLayout.edit.TextScrap; |
| import flashx.textLayout.elements.FlowLeafElement; |
| import flashx.textLayout.elements.InlineGraphicElement; |
| import flashx.textLayout.elements.ListElement; |
| import flashx.textLayout.elements.ListItemElement; |
| import flashx.textLayout.elements.ParagraphElement; |
| import flashx.textLayout.elements.SpanElement; |
| import flashx.textLayout.formats.BlockProgression; |
| import flashx.textLayout.formats.Direction; |
| |
| import mx.utils.LoaderUtil; |
| |
| import org.flexunit.asserts.assertTrue; |
| import org.flexunit.asserts.fail; |
| |
| [TestCase(order=28)] |
| public class KeyboardGestureTest extends VellumTestCase |
| { |
| private const BASIC_TEST:String = "This is a test of the keyboard gesture system."; |
| private const HYPHEN_TEST:String = "This is-a test-of-the keyboard-gesture system.-"; |
| |
| // List of available keyboard gestures |
| // Note that on Mac: CTRL == COMMAND |
| // and: ALT == OPTION |
| // These are directly mapped in flash player |
| private static const CTRL_BACKSPACE:int = 100; |
| private static const CTRL_DELETE:int = 101; |
| private static const OPT_BACKSPACE:int = 102; |
| private static const OPT_DELETE:int = 103; |
| private static const CTRL_LEFT:int = 104; |
| private static const CTRL_RIGHT:int = 105; |
| private static const CTRL_UP:int = 106; |
| private static const CTRL_DOWN:int = 107; |
| private static const OPT_LEFT:int = 108; |
| private static const OPT_RIGHT:int = 109; |
| private static const OPT_UP:int = 110; |
| private static const OPT_DOWN:int = 111; |
| private static const SHIFT_CTRL_LEFT:int = 112; |
| private static const SHIFT_CTRL_RIGHT:int = 113; |
| private static const SHIFT_CTRL_UP:int = 114; |
| private static const SHIFT_CTRL_DOWN:int = 115; |
| private static const SHIFT_OPT_LEFT:int = 116; |
| private static const SHIFT_OPT_RIGHT:int = 117; |
| private static const SHIFT_OPT_UP:int = 118; |
| private static const SHIFT_OPT_DOWN:int = 119; |
| private static const HOME:int = 120; |
| private static const END:int = 121; |
| private static const SHIFT_HOME:int = 122; |
| private static const SHIFT_END:int = 123; |
| private static const CTRL_HOME:int = 124; |
| private static const CTRL_END:int = 125; |
| private static const SHIFT_CTRL_HOME:int = 126; |
| private static const SHIFT_CTRL_END:int = 127; |
| private static const PG_UP:int = 128; |
| private static const PG_DOWN:int = 129; |
| private static const SHIFT_PG_UP:int = 130; |
| private static const SHIFT_PG_DOWN:int = 131; |
| private static const UP:int = 132; |
| private static const DOWN:int = 133; |
| private static const LEFT:int = 134; |
| private static const RIGHT:int = 135; |
| private static const TAB:int = 136; |
| private static const SHIFT_TAB:int = 137; |
| |
| private var version:Number; |
| |
| public function KeyboardGestureTest() |
| { |
| super("", "KeyboardGestureTest", TestConfig.getInstance()); |
| |
| metaData = {}; |
| |
| // Note: These must correspond to a Watson product area (case-sensitive) |
| metaData.productArea = "Editing"; |
| metaData.productSubArea = "Keyboard Gestures"; |
| } |
| |
| [BeforeClass] |
| public static function setUpClass():void |
| { |
| var testConfig:TestConfig = TestConfig.getInstance(); |
| FileRepository.readFile(testConfig.baseURL, "../../test/testFiles/markup/tlf/empty.xml"); |
| FileRepository.readFile(testConfig.baseURL, "../../test/testFiles/markup/tlf/school.xml"); |
| FileRepository.readFile(testConfig.baseURL, "../../test/testFiles/markup/tlf/tcyTestBase.xml"); |
| } |
| |
| [Before] |
| public override function setUpTest():void |
| { |
| super.setUpTest(); |
| |
| SelManager.selectAll(); |
| SelManager.deleteNextCharacter(); |
| |
| SelManager.insertText(BASIC_TEST); |
| SelManager.flushPendingOperations(); |
| } |
| |
| [After] |
| override public function tearDownTest():void |
| { |
| super.tearDownTest(); |
| } |
| |
| public override function loadTestFile(fileName:String):void |
| { |
| super.loadTestFile(fileName); |
| |
| SelManager.textFlow.blockProgression = writingDirection[0]; |
| SelManager.textFlow.direction = writingDirection[1]; |
| SelManager.flushPendingOperations(); |
| } |
| |
| /*********** CTRL-BACKSPACE TESTS **************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function CtrlBackspaceGeneralTest():void |
| { |
| BackspaceGeneralTest(CTRL_BACKSPACE); |
| } |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function OptBackspaceGeneralTest():void |
| { |
| BackspaceGeneralTest(OPT_BACKSPACE); |
| } |
| |
| /** |
| * Test a bunch of different places in a line that Ctrl-Backspace could be pressed |
| */ |
| [Test] |
| public function CtrlBackspaceLocationTest():void |
| { |
| SelManager.selectRange(0, 0); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace changed something when exectuted at position 0", |
| getAllText() == BASIC_TEST); |
| |
| SelManager.selectRange(46, 46); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| assertTrue("Ctrl-Backspace failed on punctutation", |
| getAllText() == "This is a test of the keyboard gesture system"); |
| |
| SelManager.selectRange(45, 45); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| assertTrue("Ctrl-Backspace failed at the end of a line", |
| getAllText() == "This is a test of the keyboard gesture "); |
| |
| SelManager.selectRange(9, 9); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| assertTrue("Ctrl-Backspace failed on a single character word", |
| getAllText() == "This is test of the keyboard gesture "); |
| |
| SelManager.selectRange(8, 8); |
| SelManager.insertText(" "); |
| SelManager.selectRange(11, 11); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| assertTrue("Ctrl-Backspace failed over extra whitespace", |
| getAllText() == "This test of the keyboard gesture "); |
| |
| SelManager.selectRange(20, 20); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| assertTrue("Ctrl-Backspace failed in the middle of a word", |
| getAllText() == "This test of the board gesture "); |
| |
| SelManager.selectRange(29, 29); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| assertTrue("Ctrl-Backspace failed 1 from the end of a word", |
| getAllText() == "This test of the board e "); |
| |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| assertTrue("Ctrl-Backspace failed on the first character of a word", |
| getAllText() == "This test of the oard e "); |
| |
| SelManager.selectRange(10, 10); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| assertTrue("Ctrl-Backspace failed after a single whitespace", |
| getAllText() == "This of the oard e "); |
| |
| SelManager.selectRange(19, 19); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| assertTrue("Ctrl-Backspace failed after a training whitespace", |
| getAllText() == "This of the oard "); |
| } |
| |
| [Test] |
| public function CtrlBackspaceHyphenTest():void |
| { |
| SelManager.selectAll(); |
| SelManager.deleteNextCharacter(); |
| SelManager.flushPendingOperations(); |
| SelManager.insertText(HYPHEN_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(48, 48); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed over a paragraph break w/ hypen", |
| getAllText() == "This is-a test-of-the keyboard-gesture system.-This is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen punctuation combination", |
| getAllText() == "This is-a test-of-the keyboard-gesture system.This is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen punctuation combination", |
| getAllText() == "This is-a test-of-the keyboard-gesture This is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen", |
| getAllText() == "This is-a test-of-the keyboard-This is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen", |
| getAllText() == "This is-a test-of-the keyboardThis is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen", |
| getAllText() == "This is-a test-of-the This is a test of the keyboard gesture system."); |
| |
| SelManager.selectRange(21, 21); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen", |
| getAllText() == "This is-a test-of- This is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen", |
| getAllText() == "This is-a test-of This is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen", |
| getAllText() == "This is-a test- This is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen", |
| getAllText() == "This is-a test This is a test of the keyboard gesture system."); |
| |
| SelManager.selectRange(9, 9); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen", |
| getAllText() == "This is- test This is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen", |
| getAllText() == "This is test This is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| assertTrue("Ctrl-Backspace failed with a hyphen", |
| getAllText() == "This test This is a test of the keyboard gesture system."); |
| } |
| |
| [Test] |
| public function CtrlBackspaceParagraphTest():void |
| { |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| |
| SelManager.selectRange(46, 46); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(93, 93); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(140, 140); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(187, 187); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(179, 219); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(179); |
| assertTrue("Ctrl-Backspace failed between paragraphs", elem is SpanElement); |
| |
| SelManager.selectRange(171, 210); |
| SelManager.deleteNextCharacter(); |
| |
| SelManager.selectRange(141, 141); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| SelManager.selectRange(0, 94); // Should do nothing |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| // This is the correct functionality of Ctrl-Backspace |
| // Bug #1891186 deferred for player fix |
| //SelManager.selectRange(94,186); |
| //assertTrue("Ctrl-Backspace failed across multiple paragraphs", |
| // getSelectedText() == "This is a test of the keyboard gesture system. This is a test of the keyboard gesture system."); |
| |
| SelManager.selectRange(94, 186); |
| assertTrue("Ctrl-Backspace behavior across multiple paragraphs changed", |
| getSelectedText() == "This is a test of the keyboard gesture system.This is a test of the keyboard gesture system."); |
| } |
| |
| [Test] |
| public function CtrlBackspaceImageTest():void |
| { |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(26, 26); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(32, 32); |
| SelManager.insertText(" "); |
| SelManager.selectRange(33, 33); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(37, 37); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(34); |
| assertTrue("Ctrl-Backspace removed multiple images in one operation", elem is InlineGraphicElement); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| elem = SelManager.textFlow.findLeaf(33); |
| assertTrue("Ctrl-Backspace removed multiple images in one operation", elem is InlineGraphicElement); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| SelManager.selectRange(27, 27); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| elem = SelManager.textFlow.findLeaf(26); |
| assertTrue("Ctrl-Backspace failed to remove image in word", !(elem is InlineGraphicElement)); |
| |
| SelManager.selectRange(23, 23); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| elem = SelManager.textFlow.findLeaf(20); |
| assertTrue("Ctrl-Backspace failed to remove image with word", !(elem is InlineGraphicElement)); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| assertTrue("Ctrl-Backspace failed to removed extra text in image test", |
| getAllText() == "This is a test of keyboard gesture system."); |
| } |
| |
| [Test] |
| public function CtrlBackspaceLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| SelManager.selectRange(18, 25); |
| assertTrue("Ctrl-Backspace failed in Right to Left Arabic text", |
| getSelectedText() == "n رسة i"); |
| |
| SelManager.selectRange(76, 77); |
| SelManager.deleteNextCharacter(); |
| |
| SelManager.selectRange(82, 82); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| SelManager.selectRange(66, 69); |
| assertTrue("Ctrl-Backspace failed to delete a bidi word", |
| getSelectedText() == ", i"); |
| |
| SelManager.undo(); |
| SelManager.undo(); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| SelManager.selectRange(68, 78); |
| assertTrue("Ctrl-Backspace changed removal behavior within a bidi word", |
| getSelectedText() == "־סֵפֶר in "); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| SelManager.selectRange(257, 260); |
| assertTrue("Ctrl-Backspace changed removal behavior within right to left text", |
| getSelectedText() == "ل ب"); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| SelManager.selectRange(14, 18); |
| assertTrue("Ctrl-Backspace changed removal behavior within TCY text", |
| getSelectedText() == "ぜlis"); |
| |
| SelManager.selectRange(20, 20); |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| SelManager.selectRange(18, 20); |
| assertTrue("Ctrl-Backspace changed removal behavior within TCY text", |
| getSelectedText() == "hあ"); |
| } |
| |
| /*********** CTRL-DELETE TESTS **************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function CtrlDeleteGeneralTest():void |
| { |
| deleteGeneralTest(CTRL_DELETE); |
| } |
| |
| [Test] |
| public function OptDeleteGeneralTest():void |
| { |
| deleteGeneralTest(OPT_DELETE); |
| } |
| |
| /** |
| * Test a bunch of different places in a line that Ctrl-Delete could be pressed |
| */ |
| [Test] |
| public function CtrlDeleteLocationTest():void |
| { |
| SelManager.selectRange(46, 46); |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete changed something when exectuted at end position", |
| getAllText() == BASIC_TEST); |
| |
| SelManager.selectRange(45, 45); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| assertTrue("Ctrl-Delete failed on punctutation", |
| getAllText() == "This is a test of the keyboard gesture system"); |
| |
| SelManager.selectRange(39, 39); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| assertTrue("Ctrl-Delete failed at the end of a line", |
| getAllText() == "This is a test of the keyboard gesture "); |
| |
| SelManager.selectRange(8, 8); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| assertTrue("Ctrl-Delete failed on a single character word", |
| getAllText() == "This is test of the keyboard gesture "); |
| |
| SelManager.selectRange(5, 5); |
| SelManager.insertText(" "); |
| SelManager.selectRange(4, 4); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| assertTrue("Ctrl-Delete failed over extra whitespace", |
| getAllText() == "This test of the keyboard gesture "); |
| |
| SelManager.selectRange(20, 20); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| assertTrue("Ctrl-Delete failed in the middle of a word", |
| getAllText() == "This test of the key gesture "); |
| |
| SelManager.selectRange(27, 27); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| assertTrue("Ctrl-Delete failed 1 from the end of a word", |
| getAllText() == "This test of the key gestur "); |
| |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| assertTrue("Ctrl-Delete failed on the first character of a word", |
| getAllText() == "This test of the k gestur "); |
| |
| SelManager.selectRange(25, 25); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| assertTrue("Ctrl-Delete failed after a trailing whitespace", |
| getAllText() == "This test of the k gestur"); |
| } |
| |
| [Test] |
| public function CtrlDeleteHyphenTest():void |
| { |
| SelManager.selectAll(); |
| SelManager.deleteNextCharacter(); |
| SelManager.flushPendingOperations(); |
| SelManager.insertText(HYPHEN_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(47, 47); |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed over a paragraph break w/ hypen", |
| getAllText() == "This is-a test-of-the keyboard-gesture system.-This is a test of the keyboard gesture system."); |
| |
| SelManager.selectRange(46, 46); |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen punctuation combination", |
| getAllText() == "This is-a test-of-the keyboard-gesture system.This is a test of the keyboard gesture system."); |
| |
| SelManager.selectRange(45, 45); |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen punctuation combination", |
| getAllText() == "This is-a test-of-the keyboard-gesture system is a test of the keyboard gesture system."); |
| |
| SelManager.selectRange(5, 5); |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen", |
| getAllText() == "This -a test-of-the keyboard-gesture system is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen", |
| getAllText() == "This a test-of-the keyboard-gesture system is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen", |
| getAllText() == "This test-of-the keyboard-gesture system is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen", |
| getAllText() == "This -of-the keyboard-gesture system is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen", |
| getAllText() == "This of-the keyboard-gesture system is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen", |
| getAllText() == "This -the keyboard-gesture system is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen", |
| getAllText() == "This the keyboard-gesture system is a test of the keyboard gesture system."); |
| |
| SelManager.selectRange(9, 9); |
| |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen", |
| getAllText() == "This the -gesture system is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen", |
| getAllText() == "This the gesture system is a test of the keyboard gesture system."); |
| |
| sendKeyboardGesture(CTRL_DELETE); |
| assertTrue("Ctrl-Delete failed with a hyphen", |
| getAllText() == "This the system is a test of the keyboard gesture system."); |
| } |
| |
| [Test] |
| public function CtrlDeleteParagraphTest():void |
| { |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| |
| SelManager.selectRange(46, 46); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(93, 93); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(140, 140); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(187, 187); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(179, 219); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(180); |
| assertTrue("Ctrl-Delete failed across paragraphs", |
| elem is SpanElement); |
| |
| SelManager.selectRange(140, 140); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| SelManager.selectRange(0, 94); |
| SelManager.deleteNextCharacter(); |
| |
| SelManager.selectRange(0, 85); |
| assertTrue("Ctrl-Delete failed to remove multiple paragraphs", |
| getSelectedText() == "This is a test of the keyboard gesture system.This is a test of the keyboard gesture."); |
| } |
| |
| [Test] |
| public function CtrlDeleteImageTest():void |
| { |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(26, 26); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(32, 32); |
| SelManager.insertText(" "); |
| SelManager.selectRange(33, 33); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(32, 32); |
| sendKeyboardGesture(CTRL_DELETE); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(32); |
| assertTrue("Ctrl-Delete removed multiple images in one operation", elem is InlineGraphicElement); |
| |
| sendKeyboardGesture(CTRL_DELETE); |
| elem = SelManager.textFlow.findLeaf(32); |
| assertTrue("Ctrl-Delete removed multiple images in one operation", elem is InlineGraphicElement); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| SelManager.selectRange(20, 20); |
| sendKeyboardGesture(CTRL_DELETE); |
| elem = SelManager.textFlow.findLeaf(20); |
| assertTrue("Ctrl-Delete failed to remove image in word", !(elem is InlineGraphicElement)); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(CTRL_DELETE); |
| sendKeyboardGesture(CTRL_DELETE); |
| elem = SelManager.textFlow.findLeaf(20); |
| assertTrue("Ctrl-Delete failed to remove image with word", !(elem is InlineGraphicElement)); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| assertTrue("Ctrl-Delete failed to removed extra text in image test", |
| getAllText() == "This is a test of the gesture system."); |
| } |
| |
| [Test] |
| public function CtrlDeleteLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(CTRL_DELETE); |
| SelManager.selectRange(18, 24); |
| assertTrue("Ctrl-Delete failed in Right to Left Arabic text", |
| getSelectedText() == "n مد i"); |
| |
| SelManager.selectRange(75, 76); |
| SelManager.deleteNextCharacter(); |
| |
| SelManager.selectRange(66, 66); |
| sendKeyboardGesture(CTRL_DELETE); |
| SelManager.selectRange(65, 68); |
| assertTrue("Ctrl-Delete failed to delete a bidi word", |
| getSelectedText() == ", i"); |
| |
| SelManager.undo(); |
| SelManager.undo(); |
| SelManager.selectRange(66, 66); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| SelManager.selectRange(67, 75); |
| assertTrue("Ctrl-Delete changed removal behavior within a bidi word", |
| getSelectedText() == "סֵפֶר in"); |
| |
| SelManager.selectRange(254, 254); |
| sendKeyboardGesture(CTRL_DELETE); |
| |
| SelManager.selectRange(254, 257); |
| assertTrue("Ctrl-Delete changed removal behavior within right to left text", |
| getSelectedText() == " بع"); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(CTRL_DELETE); |
| SelManager.selectRange(14, 18); |
| assertTrue("Ctrl-Delete changed removal behavior within TCY text", |
| getSelectedText() == "ぜEng"); |
| |
| SelManager.selectRange(19, 19); |
| sendKeyboardGesture(CTRL_DELETE); |
| SelManager.selectRange(17, 19); |
| assertTrue("Ctrl-Delete changed removal behavior within TCY text", |
| getSelectedText() == "gが"); |
| } |
| |
| /*********** CTRL-LEFT TESTS **************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function CtrlLeftGeneralTest():void |
| { |
| leftGeneralTest(CTRL_LEFT); |
| } |
| |
| [Test] |
| public function OptLeftGeneralTest():void |
| { |
| leftGeneralTest(OPT_LEFT); |
| } |
| |
| /** |
| * Test a bunch of different places in a line that Ctrl-Left could be pressed |
| */ |
| [Test] |
| public function CtrlLeftLocationTest():void |
| { |
| SelManager.selectRange(0, 0); |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left changed position when exectuted at position 0", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(46, 46); |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| assertTrue("Ctrl-Left failed on punctutation", |
| SelManager.activePosition == 45 && |
| SelManager.anchorPosition == 45); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| assertTrue("Ctrl-Left failed at the end of a line", |
| SelManager.activePosition == 39 && |
| SelManager.anchorPosition == 39); |
| |
| SelManager.selectRange(9, 9); |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| assertTrue("Ctrl-Left failed on a single character word", |
| SelManager.activePosition == 8 && |
| SelManager.anchorPosition == 8); |
| |
| SelManager.insertText(" "); |
| SelManager.selectRange(11, 11); |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| assertTrue("Ctrl-Left failed over extra whitespace", |
| SelManager.activePosition == 5 && |
| SelManager.anchorPosition == 5); |
| |
| SelManager.selectRange(28, 28); |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| assertTrue("Ctrl-Left failed in the middle of a word", |
| SelManager.activePosition == 25 && |
| SelManager.anchorPosition == 25); |
| |
| SelManager.selectRange(40, 40); |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| assertTrue("Ctrl-Left failed 1 from the end of a word", |
| SelManager.activePosition == 34 && |
| SelManager.anchorPosition == 34); |
| |
| SelManager.selectRange(26, 26); |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| assertTrue("Ctrl-Left failed on the first character of a word", |
| SelManager.activePosition == 25 && |
| SelManager.anchorPosition == 25); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| assertTrue("Ctrl-Left failed after a single whitespace", |
| SelManager.activePosition == 21 && |
| SelManager.anchorPosition == 21); |
| } |
| |
| [Test] |
| public function CtrlLeftHyphenTest():void |
| { |
| SelManager.selectAll(); |
| SelManager.deleteNextCharacter(); |
| SelManager.flushPendingOperations(); |
| SelManager.insertText(HYPHEN_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(48, 48); |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed over a paragraph break w/ hypen", |
| SelManager.activePosition == 47 && |
| SelManager.anchorPosition == 47); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen punctuation combination", |
| SelManager.activePosition == 46 && |
| SelManager.anchorPosition == 46); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen punctuation combination", |
| SelManager.activePosition == 45 && |
| SelManager.anchorPosition == 45); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 31 && |
| SelManager.anchorPosition == 31); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 30 && |
| SelManager.anchorPosition == 30); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 22); |
| |
| SelManager.selectRange(21, 21); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 18 && |
| SelManager.anchorPosition == 18); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 17 && |
| SelManager.anchorPosition == 17); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 15 && |
| SelManager.anchorPosition == 15); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 14 && |
| SelManager.anchorPosition == 14); |
| |
| SelManager.selectRange(9, 9); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 8 && |
| SelManager.anchorPosition == 8); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 7 && |
| SelManager.anchorPosition == 7); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 5 && |
| SelManager.anchorPosition == 5); |
| } |
| |
| [Test] |
| public function CtrlLeftParagraphTest():void |
| { |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| |
| SelManager.selectRange(46, 46); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(93, 93); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(140, 140); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(187, 187); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(179, 219); |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| assertTrue("Ctrl-Left moved cursor with selection across paragraphs", |
| SelManager.activePosition == 179 && |
| SelManager.anchorPosition == 179); |
| |
| SelManager.selectRange(141, 141); |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| assertTrue("Ctrl-Left failed to move between paragraphs", |
| SelManager.activePosition == 140 && |
| SelManager.anchorPosition == 140); |
| } |
| |
| [Test] |
| public function CtrlLeftImageTest():void |
| { |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(26, 26); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(32, 32); |
| SelManager.insertText(" "); |
| SelManager.selectRange(33, 33); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(37, 37); |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 35 && |
| SelManager.anchorPosition == 35); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 34 && |
| SelManager.anchorPosition == 34); |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 27 && |
| SelManager.anchorPosition == 27); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 26 && |
| SelManager.anchorPosition == 26); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 23 && |
| SelManager.anchorPosition == 23); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 21 && |
| SelManager.anchorPosition == 21); |
| } |
| |
| [Test] |
| public function CtrlLeftLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed in Right to Left Arabic text", |
| SelManager.activePosition == 20 && |
| SelManager.anchorPosition == 20); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left failed to move through a bidi word", |
| SelManager.activePosition == 79 && |
| SelManager.anchorPosition == 79); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left changed movement behavior within a bidi word", |
| SelManager.activePosition == 78 && |
| SelManager.anchorPosition == 78); |
| |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left changed movement behavior within a bidi word", |
| SelManager.activePosition == 70 && |
| SelManager.anchorPosition == 70); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(CTRL_LEFT); |
| |
| assertTrue("Ctrl-Left changed movement behavior within right to left text", |
| SelManager.activePosition == 257 && |
| SelManager.anchorPosition == 257); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left changed removal behavior within TCY text", |
| SelManager.activePosition == 15 && |
| SelManager.anchorPosition == 15); |
| |
| SelManager.selectRange(23, 23); |
| sendKeyboardGesture(CTRL_LEFT); |
| assertTrue("Ctrl-Left changed removal behavior within TCY text", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 22); |
| } |
| |
| /*********** CTRL-RIGHT TESTS **************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function CtrlRightGeneralTest():void |
| { |
| rightGeneralTest(CTRL_RIGHT); |
| } |
| |
| [Test] |
| public function OptRightGeneralTest():void |
| { |
| rightGeneralTest(OPT_RIGHT); |
| } |
| |
| /** |
| * Test a bunch of different places in a line that Ctrl-Right could be pressed |
| */ |
| [Test] |
| public function CtrlRightLocationTest():void |
| { |
| // Extending the selection to include the terminator at the end of the flow works or not depending on |
| // the backwards compatibility flag. Version 1.0 does not allow it. Version 2.0 and later does allow it. |
| SelManager.selectRange(SelManager.textFlow.textLength - 1, SelManager.textFlow.textLength - 1); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Key code changed position when executed at last position", |
| SelManager.activePosition == SelManager.textFlow.textLength - 1 && |
| SelManager.anchorPosition == SelManager.textFlow.textLength - 1); |
| |
| SelManager.selectRange(45, 45); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed on punctutation", |
| SelManager.activePosition == 46 && |
| SelManager.anchorPosition == 46); |
| |
| SelManager.selectRange(0, 0); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed at the beginning of a line", |
| SelManager.activePosition == 5 && |
| SelManager.anchorPosition == 5); |
| |
| SelManager.selectRange(8, 8); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed on a single character word", |
| SelManager.activePosition == 10 && |
| SelManager.anchorPosition == 10); |
| |
| SelManager.insertText(" "); |
| SelManager.selectRange(9, 9); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed over extra whitespace", |
| SelManager.activePosition == 13 && |
| SelManager.anchorPosition == 13); |
| |
| SelManager.selectRange(28, 28); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed in the middle of a word", |
| SelManager.activePosition == 34 && |
| SelManager.anchorPosition == 34); |
| |
| SelManager.selectRange(40, 40); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed 1 from the end of a word", |
| SelManager.activePosition == 42 && |
| SelManager.anchorPosition == 42); |
| |
| SelManager.selectRange(26, 26); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed on the first character of a word", |
| SelManager.activePosition == 34 && |
| SelManager.anchorPosition == 34); |
| |
| SelManager.selectRange(33, 33); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed after a single whitespace", |
| SelManager.activePosition == 34 && |
| SelManager.anchorPosition == 34); |
| } |
| |
| [Test] |
| public function CtrlRightHyphenTest():void |
| { |
| SelManager.selectAll(); |
| SelManager.deleteNextCharacter(); |
| SelManager.flushPendingOperations(); |
| SelManager.insertText(HYPHEN_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(47, 47); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed over a paragraph break w/ hypen", |
| SelManager.activePosition == 48 && |
| SelManager.anchorPosition == 48); |
| |
| SelManager.selectRange(46, 46); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen punctuation combination", |
| SelManager.activePosition == 47 && |
| SelManager.anchorPosition == 47); |
| |
| SelManager.selectRange(45, 45); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen punctuation combination", |
| SelManager.activePosition == 46 && |
| SelManager.anchorPosition == 46); |
| |
| SelManager.selectRange(5, 5); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 7 && |
| SelManager.anchorPosition == 7); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 8 && |
| SelManager.anchorPosition == 8); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 10 && |
| SelManager.anchorPosition == 10); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 14 && |
| SelManager.anchorPosition == 14); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 15 && |
| SelManager.anchorPosition == 15); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 17 && |
| SelManager.anchorPosition == 17); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 18 && |
| SelManager.anchorPosition == 18); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 22); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 30 && |
| SelManager.anchorPosition == 30); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 31 && |
| SelManager.anchorPosition == 31); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 39 && |
| SelManager.anchorPosition == 39); |
| } |
| |
| [Test] |
| public function CtrlRightParagraphTest():void |
| { |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| |
| SelManager.selectRange(46, 46); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(93, 93); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(140, 140); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(187, 187); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(179, 219); |
| sendKeyboardGesture(CTRL_RIGHT); |
| |
| assertTrue("Ctrl-Right moved cursor with selection across paragraphs", |
| SelManager.activePosition == 219 && |
| SelManager.anchorPosition == 219); |
| |
| SelManager.selectRange(140, 140); |
| sendKeyboardGesture(CTRL_RIGHT); |
| |
| assertTrue("Ctrl-Right failed to move between paragraphs", |
| SelManager.activePosition == 141 && |
| SelManager.anchorPosition == 141); |
| } |
| |
| [Test] |
| public function CtrlRightImageTest():void |
| { |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(26, 26); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(32, 32); |
| SelManager.insertText(" "); |
| SelManager.selectRange(33, 33); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right incorrectly navigated around images", |
| SelManager.activePosition == 20 && |
| SelManager.anchorPosition == 20); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right incorrectly navigated around images", |
| SelManager.activePosition == 21 && |
| SelManager.anchorPosition == 21); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right incorrectly navigated around images", |
| SelManager.activePosition == 23 && |
| SelManager.anchorPosition == 23); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right incorrectly navigated around images", |
| SelManager.activePosition == 26 && |
| SelManager.anchorPosition == 26); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right incorrectly navigated around images", |
| SelManager.activePosition == 27 && |
| SelManager.anchorPosition == 27); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right incorrectly navigated around images", |
| SelManager.activePosition == 33 && |
| SelManager.anchorPosition == 33); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right incorrectly navigated around images", |
| SelManager.activePosition == 34 && |
| SelManager.anchorPosition == 34); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right incorrectly navigated around images", |
| SelManager.activePosition == 35 && |
| SelManager.anchorPosition == 35); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right incorrectly navigated around images", |
| SelManager.activePosition == 37 && |
| SelManager.anchorPosition == 37); |
| } |
| |
| [Test] |
| public function CtrlRightLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed in Right to Right Arabic text", |
| SelManager.activePosition == 26 && |
| SelManager.anchorPosition == 26); |
| |
| SelManager.selectRange(68, 68); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right failed to move through a bidi word", |
| SelManager.activePosition == 70 && |
| SelManager.anchorPosition == 70); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right changed movement behavior within a bidi word", |
| SelManager.activePosition == 78 && |
| SelManager.anchorPosition == 78); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right changed movement behavior within a bidi word", |
| SelManager.activePosition == 79 && |
| SelManager.anchorPosition == 79); |
| |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right changed movement behavior within a bidi word", |
| SelManager.activePosition == 85 && |
| SelManager.anchorPosition == 85); |
| |
| SelManager.selectRange(257, 257); |
| sendKeyboardGesture(CTRL_RIGHT); |
| |
| assertTrue("Ctrl-Right changed movement behavior within right to left text", |
| SelManager.activePosition == 264 && |
| SelManager.anchorPosition == 264); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right changed removal behavior within TCY text", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 22); |
| |
| SelManager.selectRange(14, 14); |
| sendKeyboardGesture(CTRL_RIGHT); |
| assertTrue("Ctrl-Right changed removal behavior within TCY text", |
| SelManager.activePosition == 15 && |
| SelManager.anchorPosition == 15); |
| } |
| |
| /*********** CTRL-UP AND CTRL-HOME TESTS *****************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function CtrlUpGeneralTest():void |
| { |
| flowBeginGeneralTest(CTRL_UP, "Ctrl-Up"); |
| } |
| |
| [Test] |
| public function OptUpGeneralTest():void |
| { |
| flowBeginGeneralTest(OPT_UP, "Opt-Up"); |
| } |
| |
| [Test] |
| public function CtrlHomeGeneralTest():void |
| { |
| flowBeginGeneralTest(CTRL_HOME, "Ctrl-Home"); |
| } |
| |
| [Test] |
| public function CtrlUpLocationTest():void |
| { |
| flowBeginLocationTest(CTRL_UP, "Ctrl-Up"); |
| } |
| |
| [Test] |
| public function CtrlHomeLocationTest():void |
| { |
| flowBeginLocationTest(CTRL_HOME, "Ctrl-Home"); |
| } |
| |
| [Test] |
| public function CtrlUpLanguageTest():void |
| { |
| flowBeginLanguageTest(CTRL_UP, "Ctrl-Up"); |
| } |
| |
| [Test] |
| public function CtrlHomeLanguageTest():void |
| { |
| flowBeginLanguageTest(CTRL_HOME, "Ctrl-Home"); |
| } |
| |
| /*********** CTRL-DOWN AND CTRL-END TESTS *****************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function CtrlDownGeneralTest():void |
| { |
| flowEndGeneralTest(CTRL_DOWN, "Ctrl-Down"); |
| } |
| |
| [Test] |
| public function OptDownGeneralTest():void |
| { |
| flowEndGeneralTest(OPT_DOWN, "Opt-Down"); |
| } |
| |
| [Test] |
| public function CtrlEndGeneralTest():void |
| { |
| flowEndGeneralTest(CTRL_END, "Ctrl-End"); |
| } |
| |
| [Test] |
| public function CtrlDownLocationTest():void |
| { |
| flowEndLocationTest(CTRL_DOWN, "Ctrl-Down"); |
| } |
| |
| [Test] |
| public function CtrlEndLocationTest():void |
| { |
| flowEndLocationTest(CTRL_END, "Ctrl-End"); |
| } |
| |
| [Test] |
| public function CtrlDownLanguageTest():void |
| { |
| flowEndLanguageTest(CTRL_DOWN, "Ctrl-Down"); |
| } |
| |
| [Test] |
| public function CtrlEndLanguageTest():void |
| { |
| flowEndLanguageTest(CTRL_END, "Ctrl-End"); |
| } |
| |
| /*********** SHIFT-CTRL-LEFT TESTS **************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function ShiftCtrlLeftGeneralTest():void |
| { |
| shiftLeftGeneralTest(SHIFT_CTRL_LEFT); |
| } |
| |
| [Test] |
| public function ShiftOptLeftGeneralTest():void |
| { |
| shiftLeftGeneralTest(SHIFT_OPT_LEFT); |
| } |
| |
| /** |
| * Test a bunch of different places in a line that Shift-Ctrl-Left could be pressed |
| */ |
| [Test] |
| public function ShiftCtrlLeftLocationTest():void |
| { |
| SelManager.selectRange(0, 0); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left changed position when exectuted at position 0", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(46, 46); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| assertTrue("Shift-Ctrl-Left failed on punctutation", |
| SelManager.activePosition == 45 && |
| SelManager.anchorPosition == 46); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| assertTrue("Shift-Ctrl-Left failed at the end of a line", |
| SelManager.activePosition == 39 && |
| SelManager.anchorPosition == 46); |
| |
| SelManager.selectRange(9, 9); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| assertTrue("Shift-Ctrl-Left failed on a single character word", |
| SelManager.activePosition == 8 && |
| SelManager.anchorPosition == 9); |
| |
| SelManager.insertText(" "); |
| SelManager.selectRange(12, 12); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| assertTrue("Shift-Ctrl-Left failed over extra whitespace", |
| SelManager.activePosition == 5 && |
| SelManager.anchorPosition == 12); |
| |
| SelManager.selectRange(28, 28); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| assertTrue("Shift-Ctrl-Left failed in the middle of a word", |
| SelManager.activePosition == 24 && |
| SelManager.anchorPosition == 28); |
| |
| SelManager.selectRange(40, 40); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| assertTrue("Shift-Ctrl-Left failed 1 from the end of a word", |
| SelManager.activePosition == 33 && |
| SelManager.anchorPosition == 40); |
| |
| SelManager.selectRange(25, 25); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| assertTrue("Shift-Ctrl-Left failed on the first character of a word", |
| SelManager.activePosition == 24 && |
| SelManager.anchorPosition == 25); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| assertTrue("Shift-Ctrl-Left failed after a single whitespace", |
| SelManager.activePosition == 20 && |
| SelManager.anchorPosition == 25); |
| } |
| |
| [Test] |
| public function ShiftCtrlLeftHyphenTest():void |
| { |
| SelManager.selectAll(); |
| SelManager.deleteNextCharacter(); |
| SelManager.flushPendingOperations(); |
| SelManager.insertText(HYPHEN_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(48, 48); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed over a paragraph break w/ hypen", |
| SelManager.activePosition == 47 && |
| SelManager.anchorPosition == 48); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen punctuation combination", |
| SelManager.activePosition == 46 && |
| SelManager.anchorPosition == 48); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen punctuation combination", |
| SelManager.activePosition == 45 && |
| SelManager.anchorPosition == 48); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 31 && |
| SelManager.anchorPosition == 48); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 30 && |
| SelManager.anchorPosition == 48); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 48); |
| |
| SelManager.selectRange(21, 21); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 18 && |
| SelManager.anchorPosition == 21); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 17 && |
| SelManager.anchorPosition == 21); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 15 && |
| SelManager.anchorPosition == 21); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 14 && |
| SelManager.anchorPosition == 21); |
| |
| SelManager.selectRange(9, 9); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 8 && |
| SelManager.anchorPosition == 9); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 7 && |
| SelManager.anchorPosition == 9); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed with a hyphen", |
| SelManager.activePosition == 5 && |
| SelManager.anchorPosition == 9); |
| } |
| |
| [Test] |
| public function ShiftCtrlLeftParagraphTest():void |
| { |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| |
| SelManager.selectRange(46, 46); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(93, 93); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(140, 140); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(187, 187); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(179, 219); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| assertTrue("Shift-Ctrl-Left moved cursor with selection across paragraphs", |
| SelManager.activePosition == 210 && |
| SelManager.anchorPosition == 179); |
| |
| SelManager.selectRange(141, 141); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| assertTrue("Shift-Ctrl-Left failed to move between paragraphs", |
| SelManager.activePosition == 140 && |
| SelManager.anchorPosition == 141); |
| } |
| |
| [Test] |
| public function ShiftCtrlLeftImageTest():void |
| { |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(26, 26); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(32, 32); |
| SelManager.insertText(" "); |
| SelManager.selectRange(33, 33); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(37, 37); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 35 && |
| SelManager.anchorPosition == 37); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 34 && |
| SelManager.anchorPosition == 37); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 27 && |
| SelManager.anchorPosition == 37); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 26 && |
| SelManager.anchorPosition == 37); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 23 && |
| SelManager.anchorPosition == 37); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left incorrectly navigated around images", |
| SelManager.activePosition == 21 && |
| SelManager.anchorPosition == 37); |
| } |
| |
| [Test] |
| public function ShiftCtrlLeftLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed in Right to Left Arabic text", |
| SelManager.activePosition == 20 && |
| SelManager.anchorPosition == 22); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left failed to move through a bidi word", |
| SelManager.activePosition == 79 && |
| SelManager.anchorPosition == 85); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left changed movement behavior within a bidi word", |
| SelManager.activePosition == 78 && |
| SelManager.anchorPosition == 85); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left changed movement behavior within a bidi word", |
| SelManager.activePosition == 70 && |
| SelManager.anchorPosition == 85); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| |
| assertTrue("Shift-Ctrl-Left changed movement behavior within right to left text", |
| SelManager.activePosition == 257 && |
| SelManager.anchorPosition == 261); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left changed removal behavior within TCY text", |
| SelManager.activePosition == 15 && |
| SelManager.anchorPosition == 18); |
| |
| SelManager.selectRange(23, 23); |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left changed removal behavior within TCY text", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 23); |
| |
| sendKeyboardGesture(SHIFT_CTRL_LEFT); |
| assertTrue("Shift-Ctrl-Left changed removal behavior within TCY text", |
| SelManager.activePosition == 15 && |
| SelManager.anchorPosition == 23); |
| } |
| |
| /*********** SHIFT-CTRL-RIGHT TESTS **************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function ShiftCtrlRightGeneralTest():void |
| { |
| shiftRightGeneralTest(SHIFT_CTRL_RIGHT); |
| } |
| |
| [Test] |
| public function ShiftOptRightGeneralTest():void |
| { |
| shiftRightGeneralTest(SHIFT_OPT_RIGHT); |
| } |
| |
| /** |
| * Test a bunch of different places in a line that Shift-Ctrl-Right could be pressed |
| */ |
| [Test] |
| public function ShiftCtrlRightLocationTest():void |
| { |
| // Extending the selection to include the terminator at the end of the flow works or not depending on |
| // the backwards compatibility flag. Version 1.0 does not allow it. Version 2.0 and later does allow it. |
| var lastRangeSelectionPos:int = SelManager.textFlow.textLength - 1; |
| |
| SelManager.selectRange(SelManager.textFlow.textLength - 1, SelManager.textFlow.textLength - 1); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right should be at end when executed at last position", |
| SelManager.activePosition == lastRangeSelectionPos && |
| SelManager.anchorPosition == SelManager.textFlow.textLength - 1); |
| |
| SelManager.selectRange(45, 45); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed on punctutation", |
| SelManager.activePosition == 46 && |
| SelManager.anchorPosition == 45); |
| |
| SelManager.selectRange(0, 0); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed at the beginning of a line", |
| SelManager.activePosition == 5 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(8, 8); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed on a single character word", |
| SelManager.activePosition == 10 && |
| SelManager.anchorPosition == 8); |
| |
| SelManager.insertText(" "); |
| SelManager.selectRange(7, 7); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed over extra whitespace", |
| SelManager.activePosition == 11 && |
| SelManager.anchorPosition == 7); |
| |
| SelManager.selectRange(26, 26); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed in the middle of a word", |
| SelManager.activePosition == 32 && |
| SelManager.anchorPosition == 26); |
| |
| SelManager.selectRange(38, 38); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed 1 from the end of a word", |
| SelManager.activePosition == 40 && |
| SelManager.anchorPosition == 38); |
| |
| SelManager.selectRange(24, 24); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed on the first character of a word", |
| SelManager.activePosition == 32 && |
| SelManager.anchorPosition == 24); |
| |
| SelManager.selectRange(31, 31); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed after a single whitespace", |
| SelManager.activePosition == 32 && |
| SelManager.anchorPosition == 31); |
| } |
| |
| [Test] |
| public function ShiftCtrlRightHyphenTest():void |
| { |
| SelManager.selectAll(); |
| SelManager.deleteNextCharacter(); |
| SelManager.flushPendingOperations(); |
| SelManager.insertText(HYPHEN_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.selectRange(47, 47); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(47, 47); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed over a paragraph break w/ hypen", |
| SelManager.activePosition == 48 && |
| SelManager.anchorPosition == 47); |
| |
| SelManager.selectRange(46, 46); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen punctuation combination", |
| SelManager.activePosition == 47 && |
| SelManager.anchorPosition == 46); |
| |
| SelManager.selectRange(45, 45); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen punctuation combination", |
| SelManager.activePosition == 46 && |
| SelManager.anchorPosition == 45); |
| |
| SelManager.selectRange(5, 5); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 7 && |
| SelManager.anchorPosition == 5); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 8 && |
| SelManager.anchorPosition == 5); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 10 && |
| SelManager.anchorPosition == 5); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 14 && |
| SelManager.anchorPosition == 5); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 15 && |
| SelManager.anchorPosition == 5); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 17 && |
| SelManager.anchorPosition == 5); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 18 && |
| SelManager.anchorPosition == 5); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 5); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 30 && |
| SelManager.anchorPosition == 5); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 31 && |
| SelManager.anchorPosition == 5); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed with a hyphen", |
| SelManager.activePosition == 39 && |
| SelManager.anchorPosition == 5); |
| } |
| |
| [Test] |
| public function ShiftCtrlRightParagraphTest():void |
| { |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| SelManager.insertText(BASIC_TEST); |
| |
| SelManager.selectRange(46, 46); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(93, 93); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(140, 140); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(187, 187); |
| SelManager.splitParagraph(); |
| |
| SelManager.selectRange(179, 219); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| |
| assertTrue("Shift-Ctrl-Right moved cursor with selection across paragraphs", |
| SelManager.activePosition == 227 && |
| SelManager.anchorPosition == 179); |
| |
| SelManager.selectRange(140, 140); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| |
| assertTrue("Shift-Ctrl-Right failed to move between paragraphs", |
| SelManager.activePosition == 141 && |
| SelManager.anchorPosition == 140); |
| } |
| |
| [Test] |
| public function ShiftCtrlRightImageTest():void |
| { |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(26, 26); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(32, 32); |
| SelManager.insertText(" "); |
| SelManager.selectRange(33, 33); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right incorrectly selected around images", |
| SelManager.activePosition == 20 && |
| SelManager.anchorPosition == 18); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right incorrectly selected around images", |
| SelManager.activePosition == 21 && |
| SelManager.anchorPosition == 18); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right incorrectly selected around images", |
| SelManager.activePosition == 23 && |
| SelManager.anchorPosition == 18); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right incorrectly selected around images", |
| SelManager.activePosition == 26 && |
| SelManager.anchorPosition == 18); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right incorrectly selected around images", |
| SelManager.activePosition == 27 && |
| SelManager.anchorPosition == 18); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right incorrectly selected around images", |
| SelManager.activePosition == 33 && |
| SelManager.anchorPosition == 18); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right incorrectly selected around images", |
| SelManager.activePosition == 34 && |
| SelManager.anchorPosition == 18); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right incorrectly selected around images", |
| SelManager.activePosition == 35 && |
| SelManager.anchorPosition == 18); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right incorrectly selected around images", |
| SelManager.activePosition == 37 && |
| SelManager.anchorPosition == 18); |
| } |
| |
| [Test] |
| public function ShiftCtrlRightLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed in Right to Right Arabic text", |
| SelManager.activePosition == 26 && |
| SelManager.anchorPosition == 22); |
| |
| SelManager.selectRange(68, 68); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right failed to move through a bidi word", |
| SelManager.activePosition == 70 && |
| SelManager.anchorPosition == 68); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right changed movement behavior within a bidi word", |
| SelManager.activePosition == 78 && |
| SelManager.anchorPosition == 68); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right changed movement behavior within a bidi word", |
| SelManager.activePosition == 79 && |
| SelManager.anchorPosition == 68); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right changed movement behavior within a bidi word", |
| SelManager.activePosition == 85 && |
| SelManager.anchorPosition == 68); |
| |
| SelManager.selectRange(257, 257); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| |
| assertTrue("Shift-Ctrl-Right changed movement behavior within right to left text", |
| SelManager.activePosition == 264 && |
| SelManager.anchorPosition == 257); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right changed removal behavior within TCY text", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 18); |
| |
| SelManager.selectRange(14, 14); |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right changed removal behavior within TCY text", |
| SelManager.activePosition == 15 && |
| SelManager.anchorPosition == 14); |
| |
| sendKeyboardGesture(SHIFT_CTRL_RIGHT); |
| assertTrue("Shift-Ctrl-Right changed removal behavior within TCY text", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 14); |
| } |
| |
| |
| /*********** SHIFT-CTRL-UP AND SHIFT-CTRL-HOME TESTS *****************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function ShiftCtrlUpGeneralTest():void |
| { |
| selectBeginGeneralTest(SHIFT_CTRL_UP, "Shift-Ctrl-Up"); |
| } |
| |
| [Test] |
| public function ShiftOptUpGeneralTest():void |
| { |
| selectBeginGeneralTest(SHIFT_OPT_UP, "Shift-Opt-Up"); |
| } |
| |
| [Test] |
| public function ShiftCtrlHomeGeneralTest():void |
| { |
| selectBeginGeneralTest(SHIFT_CTRL_HOME, "Shift-Ctrl-Home"); |
| } |
| |
| [Test] |
| public function ShiftCtrlUpLocationTest():void |
| { |
| selectBeginLocationTest(SHIFT_CTRL_UP, "Shift-Ctrl-Up"); |
| } |
| |
| [Test] |
| public function ShiftCtrlHomeLocationTest():void |
| { |
| selectBeginLocationTest(SHIFT_CTRL_HOME, "Shift-Ctrl-Home"); |
| } |
| |
| [Test] |
| public function ShiftCtrlUpLanguageTest():void |
| { |
| shiftFlowBeginLanguageTest(SHIFT_CTRL_UP, "Ctrl-Shift-Up"); |
| } |
| |
| [Test] |
| public function ShiftCtrlHomeLanguageTest():void |
| { |
| shiftFlowBeginLanguageTest(SHIFT_CTRL_HOME, "Ctrl-Shift-Home"); |
| } |
| |
| /*********** SHIFT-CTRL-DOWN AND SHIFT-CTRL-END TESTS *****************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function ShiftCtrlDownGeneralTest():void |
| { |
| selectEndGeneralTest(SHIFT_CTRL_DOWN, "Shift-Ctrl-Down"); |
| } |
| |
| [Test] |
| public function ShiftOptDownGeneralTest():void |
| { |
| var paragraph:ParagraphElement = SelManager.textFlow.findLeaf(18).getParagraph(); |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(SHIFT_OPT_DOWN); |
| assertTrue("Shift-Opt-Down failed to select to paragraph end", |
| SelManager.activePosition == paragraph.getAbsoluteStart() + paragraph.textLength - 1 && |
| SelManager.anchorPosition == 18); |
| |
| paragraph = SelManager.textFlow.findLeaf(0).getParagraph(); |
| SelManager.selectRange(0, 0); |
| sendKeyboardGesture(SHIFT_OPT_DOWN); |
| assertTrue("Shift-Opt-Down failed to select to document end", |
| SelManager.activePosition == paragraph.getAbsoluteStart() + paragraph.textLength - 1 && |
| SelManager.anchorPosition == 0); |
| } |
| |
| [Test] |
| public function ShiftCtrlEndGeneralTest():void |
| { |
| selectEndGeneralTest(SHIFT_CTRL_END, "Shift-Ctrl-End"); |
| } |
| |
| [Test] |
| public function ShiftCtrlDownLocationTest():void |
| { |
| selectEndLocationTest(SHIFT_CTRL_DOWN, "Shift-Ctrl-Down"); |
| } |
| |
| [Test] |
| public function ShiftCtrlEndLocationTest():void |
| { |
| selectEndLocationTest(SHIFT_CTRL_END, "Shift-Ctrl-End"); |
| } |
| |
| [Test] |
| public function shiftCtrlDownLanguageTest():void |
| { |
| ShiftFlowEndLanguageTest(SHIFT_CTRL_DOWN, "Shift-Ctrl-Down"); |
| } |
| |
| [Test] |
| public function shiftCtrlEndLanguageTest():void |
| { |
| ShiftFlowEndLanguageTest(SHIFT_CTRL_END, "Shift-Ctrl-End"); |
| } |
| |
| /*********** HOME TESTS ***********************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function homeGeneralTest():void |
| { |
| // Test Generic Functionality |
| loadTestFile("simple.xml"); |
| |
| SelManager.selectRange(342, 342); |
| sendKeyboardGesture(HOME); |
| |
| assertTrue("Home failed to select the correct line", |
| SelManager.textFlow.flowComposer.findLineAtPosition(342) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Home failed to select to line beginning", |
| elem is SpanElement); |
| |
| SelManager.selectRange(2155, 2155); |
| sendKeyboardGesture(HOME); |
| |
| assertTrue("Home failed to select the correct line", |
| SelManager.textFlow.flowComposer.findLineAtPosition(2155) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Home failed to select to line beginning", |
| elem is SpanElement); |
| } |
| |
| [Test] |
| public function homeLocationTest():void |
| { |
| loadTestFile("simple.xml"); |
| |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(959, 959); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(606, 606); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(608, 608); |
| sendKeyboardGesture(HOME); |
| assertTrue("Home failed to move the correct line from image sandwich", |
| SelManager.textFlow.flowComposer.findLineAtPosition(608) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Home failed to move to line beginning from image sandwich", |
| elem is SpanElement); |
| |
| sendKeyboardGesture(HOME); |
| assertTrue("Home failed to move the correct line when excuted twice", |
| SelManager.textFlow.flowComposer.findLineAtPosition(608) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Home failed to move to line beginning when excuted twice", |
| elem is SpanElement); |
| |
| SelManager.selectRange(26, 26); |
| sendKeyboardGesture(HOME); |
| assertTrue("Home failed to move to line beginning from hyphenated word", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(957, 957); |
| sendKeyboardGesture(HOME); |
| assertTrue("Home failed to move the correct line from paragraph end", |
| SelManager.textFlow.flowComposer.findLineAtPosition(957) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Home failed to move to line beginning from paragraph end", |
| elem is SpanElement); |
| |
| SelManager.selectRange(1741, 1762); |
| sendKeyboardGesture(HOME); |
| assertTrue("Home failed to move the correct line", |
| SelManager.textFlow.flowComposer.findLineAtPosition(1762) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Home failed to move to line beginning", |
| elem is SpanElement); |
| } |
| |
| [Test] |
| public function homeLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(HOME); |
| assertTrue("Home failed in Right to Left Arabic text", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| assertTrue("Home failed to move the correct line in Right to Left Arabic text", |
| SelManager.textFlow.flowComposer.findLineAtPosition(22) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(HOME); |
| assertTrue("Home failed to move the correct line through a bidi word", |
| SelManager.textFlow.flowComposer.findLineAtPosition(85) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Home failed to move to line beginning through a bidi word", |
| elem is SpanElement); |
| |
| SelManager.selectRange(77, 77); |
| sendKeyboardGesture(HOME); |
| assertTrue("Home failed to move the correct line within a bidi word", |
| SelManager.textFlow.flowComposer.findLineAtPosition(77) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Home failed to move to line beginning within a bidi word", |
| elem is SpanElement); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(HOME); |
| assertTrue("Home failed to move the correct line within right to left text", |
| SelManager.textFlow.flowComposer.findLineAtPosition(261) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Home failed to move to line beginning within right to left text", |
| elem is SpanElement); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(HOME); |
| assertTrue("Home changed removal behavior within TCY text", |
| SelManager.activePosition == 8 && |
| SelManager.anchorPosition == 8); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(HOME); |
| assertTrue("Home changed removal behavior within TCY text", |
| SelManager.activePosition == 8 && |
| SelManager.anchorPosition == 8); |
| } |
| |
| /*********** END TESTS ************************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function endGeneralTest():void |
| { |
| // Test Generic Functionality |
| loadTestFile("simple.xml"); |
| |
| SelManager.selectRange(342, 342); |
| sendKeyboardGesture(END); |
| assertTrue("End failed to move the correct line end", |
| SelManager.textFlow.flowComposer.findLineAtPosition(342) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("End failed to move to line end", |
| elem is SpanElement); |
| |
| SelManager.selectRange(2009, 2009); |
| sendKeyboardGesture(END); |
| assertTrue("End failed to move the correct line end", |
| SelManager.textFlow.flowComposer.findLineAtPosition(2009) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("End failed to move to line end", |
| elem is SpanElement); |
| } |
| |
| [Test] |
| public function endLocationTest():void |
| { |
| loadTestFile("simple.xml"); |
| |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(959, 959); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(606, 606); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(608, 608); |
| sendKeyboardGesture(END); |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.anchorPosition); |
| assertTrue("End failed to move the correct line end from image sandwich", |
| SelManager.textFlow.flowComposer.findLineAtPosition(608) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("End failed to move to line end from image sandwich", |
| elem is SpanElement); |
| |
| SelManager.selectRange(25, 25); |
| sendKeyboardGesture(END); |
| assertTrue("End failed to move the correct line end from hyphenated word", |
| SelManager.textFlow.flowComposer.findLineAtPosition(25) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("End failed to move to line end from hyphenated word", |
| elem is SpanElement); |
| |
| sendKeyboardGesture(END); |
| assertTrue("End failed to move the correct line end when executed twice", |
| SelManager.textFlow.flowComposer.findLineAtPosition(25) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("End failed to move to line end when executed twice", |
| elem is SpanElement); |
| |
| SelManager.selectRange(957, 957); |
| sendKeyboardGesture(END); |
| assertTrue("End failed to move the correct line end when executed twice", |
| SelManager.textFlow.flowComposer.findLineAtPosition(957) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("End failed to move to line end when executed twice", |
| elem is SpanElement); |
| |
| SelManager.selectRange(1741, 1762); |
| sendKeyboardGesture(END); |
| assertTrue("End failed to move the correct line end from selection to line end", |
| SelManager.textFlow.flowComposer.findLineAtPosition(1762) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("End failed to move to line end from selection to line end", |
| elem is SpanElement); |
| } |
| |
| [Test] |
| public function endLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(END); |
| assertTrue("End failed to move the correct line end from Right to Left text", |
| SelManager.textFlow.flowComposer.findLineAtPosition(22) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("End failed to move to line end from Right to Left text", |
| elem is SpanElement); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(END); |
| assertTrue("End failed to move the correct line end from a bidi word", |
| SelManager.textFlow.flowComposer.findLineAtPosition(85) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("End failed to move to line end from a bidi word", |
| elem is SpanElement); |
| |
| SelManager.selectRange(77, 77); |
| sendKeyboardGesture(END); |
| assertTrue("End changed movement behavior within a bidi word", |
| SelManager.textFlow.flowComposer.findLineAtPosition(77) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("End changed movement behavior within a bidi word", |
| elem is SpanElement); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(END); |
| assertTrue("End changed movement behavior within right to left text", |
| SelManager.textFlow.flowComposer.findLineAtPosition(263) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("End changed movement behavior within right to left text", |
| elem is SpanElement); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(END); |
| assertTrue("End changed removal behavior within TCY text", |
| SelManager.activePosition == 27 && |
| SelManager.anchorPosition == 27); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(END); |
| assertTrue("End changed removal behavior within TCY text", |
| SelManager.activePosition == 27 && |
| SelManager.anchorPosition == 27); |
| } |
| |
| /*********** SHIFT-HOME TESTS ***********************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function shiftHomeGeneralTest():void |
| { |
| // Test Generic Functionality |
| loadTestFile("simple.xml"); |
| |
| SelManager.selectRange(342, 342); |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home failed to select to line beginning", |
| SelManager.anchorPosition == 342); |
| assertTrue("Shift-Home failed to select the correct line", |
| SelManager.textFlow.flowComposer.findLineAtPosition(342) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Shift-Home failed to select to line beginning", |
| elem is SpanElement); |
| |
| SelManager.selectRange(2155, 2155); |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home failed to select to line beginning", |
| SelManager.anchorPosition == 2155); |
| assertTrue("Shift-Home failed to select the correct line", |
| SelManager.textFlow.flowComposer.findLineAtPosition(2155) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Shift-Home failed to select to line beginning", |
| elem is SpanElement); |
| } |
| |
| [Test] |
| public function shiftHomeLocationTest():void |
| { |
| loadTestFile("simple.xml"); |
| |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(959, 959); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(606, 606); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(608, 608); |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home failed to move to line beginning from image sandwich", |
| SelManager.anchorPosition == 608); |
| assertTrue("Shift-Home failed to move the correct line from image sandwich", |
| SelManager.textFlow.flowComposer.findLineAtPosition(608) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Shift-Home failed to move to line beginning from image sandwich", |
| elem is SpanElement); |
| |
| SelManager.selectRange(26, 26); |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home failed to move to line beginning from hyphenated word", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 26); |
| |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home failed when executed twice", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 26); |
| |
| SelManager.selectRange(957, 957); |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home failed to move to line beginning from paragraph end", |
| SelManager.anchorPosition == 957); |
| assertTrue("Shift-Home failed to move the correct line from paragraph end", |
| SelManager.textFlow.flowComposer.findLineAtPosition(957) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Shift-Home failed to move to line beginning from paragraph end", |
| elem is SpanElement); |
| |
| SelManager.selectRange(1741, 1762); |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home failed to move from selection to line beginning", |
| SelManager.anchorPosition == 1741); |
| assertTrue("Shift-Home failed to select the correct line", |
| SelManager.textFlow.flowComposer.findLineAtPosition(1762) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Shift-Home failed to select to line beginning", |
| elem is SpanElement); |
| } |
| |
| [Test] |
| public function shiftHomeLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home failed in Right to Left text", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 22); |
| assertTrue("Shift-Home failed to select the correct line in Right to Left text", |
| SelManager.textFlow.flowComposer.findLineAtPosition(22) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home failed to move through a bidi word", |
| SelManager.anchorPosition == 85); |
| assertTrue("Shift-Home failed to select the correct line through a bidi word", |
| SelManager.textFlow.flowComposer.findLineAtPosition(85) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Shift-Home failed to select to line beginning through a bidi word", |
| elem is SpanElement); |
| |
| SelManager.selectRange(77, 77); |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home changed movement behavior within a bidi word", |
| SelManager.anchorPosition == 77); |
| assertTrue("Shift-Home failed to select the correct line within a bidi word", |
| SelManager.textFlow.flowComposer.findLineAtPosition(77) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Shift-Home failed to select to line beginning within a bidi word", |
| elem is SpanElement); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(SHIFT_HOME); |
| |
| assertTrue("Shift-Home changed movement behavior within right to left text", |
| SelManager.anchorPosition == 261); |
| assertTrue("Shift-Home failed to select the correct line within right to left text", |
| SelManager.textFlow.flowComposer.findLineAtPosition(261) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition - 1); |
| assertTrue("Shift-Home failed to select to line beginning within right to left text", |
| elem is SpanElement); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home changed removal behavior within TCY text", |
| SelManager.activePosition == 8 && |
| SelManager.anchorPosition == 18); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(SHIFT_HOME); |
| assertTrue("Shift-Home changed removal behavior within TCY text", |
| SelManager.activePosition == 8 && |
| SelManager.anchorPosition == 22); |
| } |
| |
| |
| /*********** SHIFT-END TESTS ************************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function ShiftEndGeneralTest():void |
| { |
| // Test Generic Functionality |
| loadTestFile("simple.xml"); |
| |
| SelManager.selectRange(342, 342); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End failed to select to line end", |
| SelManager.anchorPosition == 342); |
| assertTrue("Shift-End failed to move the correct line end", |
| SelManager.textFlow.flowComposer.findLineAtPosition(342) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("Shift-End failed to move to line end", |
| elem is SpanElement); |
| |
| SelManager.selectRange(2009, 2009); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End failed to select to line end", |
| SelManager.anchorPosition == 2009); |
| assertTrue("Shift-End failed to move the correct line end", |
| SelManager.textFlow.flowComposer.findLineAtPosition(2009) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("Shift-End failed to move to line end", |
| elem is SpanElement); |
| } |
| |
| [Test] |
| public function shiftEndLocationTest():void |
| { |
| loadTestFile("simple.xml"); |
| |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(959, 959); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(606, 606); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(608, 608); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End failed to select to line end from image sandwich", |
| SelManager.anchorPosition == 608); |
| assertTrue("Shift-End failed to move the correct line end from image sandwich", |
| SelManager.textFlow.flowComposer.findLineAtPosition(608) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("Shift-End failed to move to line end from image sandwich", |
| elem is SpanElement); |
| |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End failed from hyphenated word", |
| SelManager.anchorPosition == 608); |
| assertTrue("Shift-End failed to move the correct line end from hyphenated word", |
| SelManager.textFlow.flowComposer.findLineAtPosition(608) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("Shift-End failed to move to line end from hyphenated word", |
| elem is SpanElement); |
| |
| SelManager.selectRange(25, 25); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End failed to select to line end from hyphenated word", |
| SelManager.anchorPosition == 25); |
| assertTrue("Shift-End failed to move the correct line end from hyphenated word", |
| SelManager.textFlow.flowComposer.findLineAtPosition(25) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("Shift-End failed to move to line end from hyphenated word", |
| elem is SpanElement); |
| |
| SelManager.selectRange(957, 957); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End failed to select to line end from paragraph end", |
| SelManager.anchorPosition == 957); |
| assertTrue("Shift-End failed to move the correct line end when executed twice", |
| SelManager.textFlow.flowComposer.findLineAtPosition(957) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("Shift-End failed to move to line end when executed twice", |
| elem is SpanElement); |
| |
| SelManager.selectRange(1741, 1762); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End failed to extend selection to line end", |
| SelManager.anchorPosition == 1741); |
| assertTrue("Shift-End failed to move the correct line end from selection to line end", |
| SelManager.textFlow.flowComposer.findLineAtPosition(1762) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("Shift-End failed to move to line end from selection to line end", |
| elem is SpanElement); |
| } |
| |
| [Test] |
| public function shiftEndLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End failed in Right to Left text", |
| SelManager.anchorPosition == 22); |
| assertTrue("Shift-End failed to select the correct line end from selection in Right to Left text", |
| SelManager.textFlow.flowComposer.findLineAtPosition(22) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| var elem:FlowLeafElement = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("Shift-End failed to select to line end from selection in Right to Left text", |
| elem is SpanElement); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End failed to select through a bidi word", |
| SelManager.anchorPosition == 85); |
| assertTrue("Shift-End failed to select the correct line end from selection within a bidi word", |
| SelManager.textFlow.flowComposer.findLineAtPosition(85) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("Shift-End failed to select to line end from selection within a bidi word", |
| elem is SpanElement); |
| |
| SelManager.selectRange(77, 77); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End changed selection behavior within a bidi word", |
| SelManager.anchorPosition == 77); |
| assertTrue("Shift-End failed to select the correct line end from selection within a bidi word", |
| SelManager.textFlow.flowComposer.findLineAtPosition(77) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("Shift-End failed to select to line end from selection within a bidi word", |
| elem is SpanElement); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End changed selection behavior within right to left text", |
| SelManager.anchorPosition == 261); |
| assertTrue("Shift-End failed to select the correct line end from selection within right to left text", |
| SelManager.textFlow.flowComposer.findLineAtPosition(261) == |
| SelManager.textFlow.flowComposer.findLineAtPosition(SelManager.activePosition)); |
| elem = SelManager.textFlow.findLeaf(SelManager.activePosition); |
| assertTrue("Shift-End failed to select to line end from selection within right to left text", |
| elem is SpanElement); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End changed removal behavior within TCY text", |
| SelManager.activePosition == 27 && |
| SelManager.anchorPosition == 18); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(SHIFT_END); |
| assertTrue("Shift-End changed removal behavior within TCY text", |
| SelManager.activePosition == 27 && |
| SelManager.anchorPosition == 22); |
| } |
| |
| /*********** PG_UP TESTS ***********************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function pgUpGeneralTest():void |
| { |
| // Test Generic Functionality |
| loadTestFile("simple.xml"); |
| SelManager.selectRange(0, 2155); |
| var plainTextExporter:ITextExporter = TextConverter.getExporter(TextConverter.PLAIN_TEXT_FORMAT); |
| var tempText:String = plainTextExporter.export(SelManager.textFlow, ConversionType.STRING_TYPE) as String; |
| SelManager.selectRange(2155, 2155); |
| SelManager.insertText(tempText); |
| SelManager.insertText(tempText); |
| SelManager.flushPendingOperations(); |
| |
| SelManager.selectRange(6067, 6067); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PgUp failed to select 7/8 page up", |
| SelManager.activePosition == 3332 && |
| SelManager.anchorPosition == 3332); |
| |
| SelManager.selectRange(1314, 1314); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PgUp failed to select to top line", |
| SelManager.activePosition == 72 && |
| SelManager.anchorPosition == 72); |
| } |
| |
| [Test] |
| public function pgUpLocationTest():void |
| { |
| loadTestFile("simple.xml"); |
| SelManager.selectRange(0, 2155); |
| var plainTextExporter:ITextExporter = TextConverter.getExporter(TextConverter.PLAIN_TEXT_FORMAT); |
| var tempText:String = plainTextExporter.export(SelManager.textFlow, ConversionType.STRING_TYPE) as String; |
| SelManager.selectRange(2155, 2155); |
| SelManager.insertText(tempText); |
| SelManager.insertText(tempText); |
| SelManager.flushPendingOperations(); |
| |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(959, 959); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(606, 606); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(608, 608); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PageUp failed to move up from image sandwich", |
| SelManager.activePosition == 460 && |
| SelManager.anchorPosition == 460); |
| |
| SelManager.selectRange(6183, 6183); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PageUp failed to move up from hyphenated word", |
| SelManager.activePosition == 46 && |
| SelManager.anchorPosition == 46); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PageUp failed when executed twice", |
| SelManager.activePosition == 46 && |
| SelManager.anchorPosition == 46); |
| |
| SelManager.selectRange(957, 957); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PageUp failed to move up from paragraph end", |
| SelManager.activePosition == 122 && |
| SelManager.anchorPosition == 122); |
| |
| SelManager.selectRange(4316, 1346); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PageUp failed to move up from line beginning", |
| SelManager.activePosition == 41 && |
| SelManager.anchorPosition == 41); |
| } |
| |
| [Test] |
| public function pgUpLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(73, 73); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PageUp failed in Right to Left Arabic text", |
| SelManager.activePosition == 21 && |
| SelManager.anchorPosition == 21); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PageUp failed to move through a bidi word", |
| SelManager.activePosition == 33 && |
| SelManager.anchorPosition == 33); |
| |
| SelManager.selectRange(77, 77); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PageUp changed movement behavior within a bidi word", |
| SelManager.activePosition == 25 && |
| SelManager.anchorPosition == 25); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(PG_UP); |
| |
| assertTrue("PageUp changed movement behavior within right to left text", |
| SelManager.activePosition == 12 && |
| SelManager.anchorPosition == 12); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PageUp changed removal behavior within TCY text", |
| SelManager.activePosition == 1 && |
| SelManager.anchorPosition == 1); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(PG_UP); |
| assertTrue("PageUp changed removal behavior within TCY text", |
| SelManager.activePosition == 1 && |
| SelManager.anchorPosition == 1); |
| } |
| |
| /*********** SHIFT_PG_UP TESTS ***********************************************************************/ |
| |
| /** |
| * Test the basic functionality and undo/redo |
| */ |
| [Test] |
| public function shiftPgUpGeneralTest():void |
| { |
| // Test Generic Functionality |
| loadTestFile("simple.xml"); |
| SelManager.selectRange(0, 2155); |
| var plainTextExporter:ITextExporter = TextConverter.getExporter(TextConverter.PLAIN_TEXT_FORMAT); |
| var tempText:String = plainTextExporter.export(SelManager.textFlow, ConversionType.STRING_TYPE) as String; |
| SelManager.selectRange(2155, 2155); |
| SelManager.insertText(tempText); |
| SelManager.insertText(tempText); |
| SelManager.flushPendingOperations(); |
| |
| SelManager.selectRange(6067, 6067); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp failed to select 7/8 page up", |
| SelManager.activePosition == 3332 && |
| SelManager.anchorPosition == 6067); |
| |
| SelManager.selectRange(1314, 1314); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp failed to select to top line", |
| SelManager.activePosition == 72 && |
| SelManager.anchorPosition == 1314); |
| } |
| |
| [Test] |
| public function shiftPageUpLocationTest():void |
| { |
| loadTestFile("simple.xml"); |
| SelManager.selectRange(0, 2155); |
| var plainTextExporter:ITextExporter = TextConverter.getExporter(TextConverter.PLAIN_TEXT_FORMAT); |
| var tempText:String = plainTextExporter.export(SelManager.textFlow, ConversionType.STRING_TYPE) as String; |
| SelManager.selectRange(2155, 2155); |
| SelManager.insertText(tempText); |
| SelManager.insertText(tempText); |
| SelManager.flushPendingOperations(); |
| |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(959, 959); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(606, 606); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(608, 608); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp failed to move up from image sandwich", |
| SelManager.activePosition == 460 && |
| SelManager.anchorPosition == 608); |
| |
| SelManager.selectRange(6183, 6183); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp failed to move up from hyphenated word", |
| SelManager.activePosition == 46 && |
| SelManager.anchorPosition == 6183); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp failed when executed twice", |
| SelManager.activePosition == 46 && |
| SelManager.anchorPosition == 6183); |
| |
| SelManager.selectRange(957, 957); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp failed to move up from paragraph end", |
| SelManager.activePosition == 810 && |
| SelManager.anchorPosition == 957); |
| |
| SelManager.selectRange(4316, 1346); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp failed to move up from line beginning", |
| SelManager.activePosition == 41 && |
| SelManager.anchorPosition == 1346); |
| } |
| |
| [Test] |
| public function shiftPageUpLanguageTest():void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(73, 73); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp failed in Right to Left Arabic text", |
| SelManager.activePosition == 21 && |
| SelManager.anchorPosition == 73); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp failed to move through a bidi word", |
| SelManager.activePosition == 33 && |
| SelManager.anchorPosition == 85); |
| |
| SelManager.selectRange(77, 77); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp changed movement behavior within a bidi word", |
| SelManager.activePosition == 25 && |
| SelManager.anchorPosition == 77); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| |
| assertTrue("Shift-PageUp changed movement behavior within right to left text", |
| SelManager.activePosition == 12 && |
| SelManager.anchorPosition == 261); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp changed removal behavior within TCY text", |
| SelManager.activePosition == 1 && |
| SelManager.anchorPosition == 18); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(SHIFT_PG_UP); |
| assertTrue("Shift-PageUp changed removal behavior within TCY text", |
| SelManager.activePosition == 1 && |
| SelManager.anchorPosition == 22); |
| } |
| |
| /*********** OTHER TESTS ********************************************************************************/ |
| |
| /** |
| * Tests keyboard navigation on an overflowed non-scrolling container |
| */ |
| [Test] |
| public function overflowNavigationTest():void |
| { |
| loadTestFile("simple.xml"); |
| TestFrame.verticalScrollPolicy = ScrollPolicy.OFF; |
| TestFrame.horizontalScrollPolicy = ScrollPolicy.OFF; |
| SelManager.selectAll(); |
| var scrap:TextScrap = TextScrap.createTextScrap(SelManager.getSelectionState()); |
| SelManager.pasteTextScrap(scrap); |
| SelManager.pasteTextScrap(scrap); |
| SelManager.pasteTextScrap(scrap); |
| SelManager.pasteTextScrap(scrap); |
| |
| try |
| { |
| SelManager.selectRange(3500, 3500); |
| while (SelManager.activePosition < 8000) |
| sendKeyboardGesture(DOWN); |
| |
| while (SelManager.activePosition > 3500) |
| sendKeyboardGesture(UP); |
| |
| while (SelManager.activePosition < 8000) |
| sendKeyboardGesture(DOWN); |
| |
| while (SelManager.activePosition > 3500) |
| sendKeyboardGesture(LEFT); |
| } |
| catch (e:Error) |
| { |
| fail("Error thrown when navigating past the end of an overflowed non-scrolling container"); |
| } |
| } |
| |
| /** |
| * Tests that all arrow navigation keys work from any place in the text |
| */ |
| [Test] |
| public function bidiNavigationTest():void |
| { |
| loadTestFile("school.xml"); |
| var key:int; |
| |
| TestFrame.flowComposer.updateAllControllers(); |
| |
| try |
| { |
| for (var i:int = 1; i <= 4; i++) |
| { |
| switch (i) |
| { |
| case 1: |
| key = UP; |
| break; |
| case 2: |
| key = DOWN; |
| break; |
| case 3: |
| key = LEFT; |
| break; |
| case 4: |
| key = RIGHT; |
| break; |
| } |
| |
| for (var loc:int = 0; loc < SelManager.textFlow.textLength; loc++) |
| { |
| SelManager.selectRange(loc, loc); |
| |
| sendKeyboardGesture(key); |
| } |
| } |
| } |
| catch (e:Error) |
| { |
| fail("Error thrown when using arrow keys to navigate text"); |
| } |
| } |
| |
| [Test] |
| public function oversetText_2754698():void |
| { |
| // When text is overset, because it can't fit (exceeds the width) it can go overset in a scrollable container. Test to make sure this doesn't crash. |
| importContent('<TextFlow columnCount="1" columnWidth="150" fontSize="12" paddingLeft="4" paddingTop="4" whiteSpaceCollapse="preserve" version="2.0.0" xmlns="http://ns.adobe.com/textLayout/2008"><p><span></span></p><p><span>Big</span></p><p><span>BEF</span></p><list listStylePosition="inside" listStyleType="upperAlpha" paddingLeft="36" paddingRight="36"><listMarkerFormat><ListMarkerFormat color="#ff0000" fontSize="300" paddingLeft="40" paddingRight="90" paragraphEndIndent="4"/></listMarkerFormat><li><p><span>ite</span></p></li><li><p><span>ano</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>cou</span></p><p><span>BEF</span></p><list listStylePosition="outside" listStyleType="decimal" paddingLeft="24"><listMarkerFormat><ListMarkerFormat counterIncrement="ordered -1"/></listMarkerFormat><li><listMarkerFormat><ListMarkerFormat counterIncrement="ordered 0" counterReset="ordered 10"/></listMarkerFormat><p><span>ite</span></p></li><li><p><span>ano</span></p></li><li><p><span></span></p></li><li><p><span></span></p></li><li><p><span></span></p></li><li><p><span></span></p></li><li><p><span></span></p></li><li><p><span></span></p></li><li><p><span></span></p></li><li><p><span></span></p></li></list><list listStyleType="decimal" paddingLeft="96" paddingRight="24"><listMarkerFormat><ListMarkerFormat afterContent="YY" beforeContent="XX" counterIncrement="ordered -1" fontSize="16"/></listMarkerFormat><li><p><span>con</span></p></li><li><p><span>ano</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Suf</span></p><p><span>BEF</span></p><list listStyleType="upperAlpha" paddingLeft="36" paddingRight="36"><listMarkerFormat><ListMarkerFormat color="#ff0000" counterReset="ordered 2" fontSize="20" paragraphEndIndent="4" suffix="auto"/></listMarkerFormat><li><p><span>ite</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li></list><list listStyleType="upperAlpha" paddingLeft="36" paddingRight="36"><listMarkerFormat><ListMarkerFormat color="#ff0000" counterReset="ordered 2" fontSize="20" paragraphEndIndent="4" suffix="none"/></listMarkerFormat><li><p><span>ite</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li></list><list listStyleType="devanagari" paddingLeft="36" paddingRight="36"><listMarkerFormat><ListMarkerFormat color="#cc0000" counterIncrement="ordered 2" fontSize="10" paragraphEndIndent="4" suffix="auto"/></listMarkerFormat><li><p><span>dev</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li></list><list listStyleType="devanagari" paddingLeft="36" paddingRight="36"><listMarkerFormat><ListMarkerFormat color="#cc0000" counterIncrement="ordered 2" fontSize="10" paragraphEndIndent="4" suffix="none"/></listMarkerFormat><li><p><span>dev</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Cus</span></p><p><span>BEF</span></p><list listStyleType="disc" paddingLeft="96" paddingRight="24"><listMarkerFormat><ListMarkerFormat afterContent="	" beforeContent="Section " content="counters(ordered," *",upperRoman)" fontSize="16"/></listMarkerFormat><li><p><span>con</span></p></li><li><p><span>ano</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Div</span></p><p><span>BEF</span></p><list listStylePosition="outside" listStyleType="decimal" paddingLeft="44"><li><div><p><span>div</span></p></div><div><p><span>div</span></p></div><div><p><span>div</span></p></div></li><li><div><p><span>div</span></p></div></li><li><div><p><span>div</span></p></div></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Par</span></p><p><span>BEF</span></p><list listStylePosition="outside" listStyleType="decimal" paddingLeft="44"><li><p><span>par</span></p><p><span>par</span></p><p><span>par</span></p></li><li><p><span>par</span></p></li><li><p><span>par</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Ord</span></p><p><span>BEF</span></p><list counterIncrement="ordered 10" counterReset="ordered 2" listStyleType="disc" paddingLeft="24" paddingRight="24"><li><p><span>ite</span></p></li><li><p><span>ano</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Neg</span></p><p><span>BEF</span></p><list listStyleType="upperAlpha" paddingLeft="96" paddingRight="24"><listMarkerFormat><ListMarkerFormat afterContent="YY" beforeContent="XX" counterIncrement="ordered -1" fontSize="16"/></listMarkerFormat><li><p><span>con</span></p></li><li><p><span>ano</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Lis</span></p><p><span>BEF</span></p><list listStyleType="upperRoman" paddingLeft="96" paddingRight="24"><listMarkerFormat><ListMarkerFormat counterIncrement="ordered -1" fontSize="16"/></listMarkerFormat><li><p><span>fir</span></p></li><li><p><span>sec</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Bot</span></p><p><span>BEF</span></p><list listStyleType="upperAlpha" paddingLeft="36" paddingRight="36"><listMarkerFormat><ListMarkerFormat counterIncrement="ordered -1" fontSize="20"/></listMarkerFormat><li><listMarkerFormat><ListMarkerFormat counterReset="ordered -1" fontSize="20"/></listMarkerFormat><p><span>fir</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Spa</span></p><p><span>BEF</span></p><list listStyleType="upperAlpha" paddingLeft="96" paddingRight="24"><listMarkerFormat><ListMarkerFormat afterContent=" YY " beforeContent=" XX " counterIncrement="ordered -1" fontSize="16"/></listMarkerFormat><li><p><span>con</span></p></li><li><p><span>ano</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span> Fi</span></p><p><span>BEF</span></p><list listStyleType="decimal" paddingLeft="24" paddingRight="24"><li><p><span>nes</span></p><list listStyleType="upperAlpha" paddingLeft="24" paddingRight="24"><li><p><span>nes</span></p><list listStyleType="decimal" paddingLeft="24" paddingRight="24"><li><p><span>nes</span></p><list listStyleType="lowerAlpha" paddingLeft="24" paddingRight="24"><li><p><span>nes</span></p><list listStyleType="cjkEarthlyBranch" paddingLeft="24" paddingRight="24"><li><p><span>nes</span></p></li><li><p><span>aga</span></p></li><li><p><span>aga</span></p></li></list></li><li><p><span>aga</span></p></li><li><p><span>aga</span></p></li></list></li><li><p><span>aga</span></p></li><li><p><span>and</span></p></li></list></li><li><p><span>nes</span></p></li><li><p><span>and</span></p></li><li><p><span>and</span></p></li><li><p><span>and</span></p></li></list></li><li><p><span>ano</span></p></li><li><p><span>and</span></p></li><li><p><span>and</span></p></li><li><p><span>and</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Emp</span></p><p><span>BEF</span></p><list listStyleType="decimal" paddingLeft="24" paddingRight="24"><li><p><span></span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Mix</span></p><p><span>BEF</span></p><list listStylePosition="inside" listStyleType="upperAlpha"><listMarkerFormat><ListMarkerFormat afterContent="	" beforeContent="Chapter " content="counters(ordered,".")" fontSize="14"/></listMarkerFormat><li><p><span>Fir</span></p></li><li><p><span>Sec</span></p></li><li><p><span>Thi</span></p><list><listMarkerFormat><ListMarkerFormat afterContent="	" beforeContent="Chapter " content="counters(ordered,".",upperRoman)" fontSize="12"/></listMarkerFormat><li><p><span>sec</span></p></li><li><p><span>ano</span></p></li></list></li></list><p><span>AFT</span></p><p><span></span></p><p><span>cou</span></p><p><span>BEF</span></p><list listStylePosition="inside" listStyleType="decimal"><li><p><span>ite</span></p></li><li><p><span>ano</span></p></li><li><listMarkerFormat><ListMarkerFormat counterReset="ordered 0"/></listMarkerFormat><p><span>res</span></p></li><li><p><span>and</span></p></li><li><listMarkerFormat><ListMarkerFormat counterReset="ordered 3"/></listMarkerFormat><p><span>res</span></p></li><li><p><span>ano</span></p></li><li><listMarkerFormat><ListMarkerFormat content="counter(ordered,upperRoman)"/></listMarkerFormat><p><span>upp</span></p></li><li><listMarkerFormat><ListMarkerFormat content="counter(ordered,lowerAlpha)" counterReset="ordered 3"/></listMarkerFormat><p><span>ano</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>dif</span></p><p><span>BEF</span></p><list listStylePosition="outside" listStyleType="upperRoman" paddingLeft="36" paddingRight="24"><listMarkerFormat><ListMarkerFormat counterIncrement="ordered -1" counterReset="ordered 5" fontSize="18"/></listMarkerFormat><li><listMarkerFormat><ListMarkerFormat counterIncrement="ordered -2" counterReset="ordered 10" fontSize="18"/></listMarkerFormat><p><span>cou</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li><li><p><span>ano</span></p></li></list><p><span>AFT</span></p><p><span></span></p><p><span>con</span></p><p><span>BEF</span></p><list listStylePosition="inside" listStyleType="decimal"><listMarkerFormat><ListMarkerFormat afterContent="	" beforeContent="Chapter " content="counters(ordered,".",upperRoman)" fontSize="14"/></listMarkerFormat><li><p><span>Fir</span></p><list><listMarkerFormat><ListMarkerFormat afterContent="	" beforeContent="Section " content="counters(ordered,".",upperRoman)" fontSize="12"/></listMarkerFormat><li><p><span>sec</span></p></li><li><p><span>ano</span></p></li></list></li><li><p><span>Sec</span></p><list><listMarkerFormat><ListMarkerFormat afterContent="	" beforeContent="Section " content="counters(ordered)" fontSize="12"/></listMarkerFormat><li><p><span>sec</span></p></li><li><p><span>ano</span></p></li></list></li><li><p><span>Thi</span></p><list><listMarkerFormat><ListMarkerFormat afterContent="	" beforeContent="Section " content="counter(ordered)" fontSize="12"/></listMarkerFormat><li><p><span>sec</span></p></li><li><p><span>ano</span></p></li></list></li></list><p><span>AFT</span></p><p><span></span></p><p><span>Tes</span></p></TextFlow>'); |
| SelManager.selectRange(0, 0); |
| TestFrame.flowComposer.updateAllControllers(); |
| sendKeyboardGesture(CTRL_END); // select to end of flow |
| sendKeyboardGesture(UP); // go to previous line |
| } |
| |
| /** |
| * /Tab key and Shift Tab key on list element to promote and demote the list |
| */ |
| [Test] |
| public function TabPromoteDemoteListTest():void |
| { |
| SelManager.selectAll(); |
| SelManager.deleteText(); |
| SelManager.setFocus(); |
| SelManager.selectRange(0, 0); |
| var list:ListElement = new ListElement(); |
| list.listStyleType = "decimal"; |
| list.listStylePosition = "inside"; |
| list.paddingLeft = "0"; |
| var item1:ListItemElement = new ListItemElement(); |
| var p1:ParagraphElement = new ParagraphElement(); |
| var s1:SpanElement = new SpanElement(); |
| s1.text = " First item"; |
| p1.addChild(s1); |
| item1.addChild(p1); |
| var item2:ListItemElement = new ListItemElement(); |
| var p2:ParagraphElement = new ParagraphElement(); |
| var s2:SpanElement = new SpanElement(); |
| s2.text = " Second item"; |
| p2.addChild(s2); |
| item2.addChild(p2); |
| var item3:ListItemElement = new ListItemElement(); |
| var p3:ParagraphElement = new ParagraphElement(); |
| var s3:SpanElement = new SpanElement(); |
| s3.text = " Third item"; |
| p3.addChild(s3); |
| item3.addChild(p3); |
| list.addChild(item1); |
| list.addChild(item2); |
| list.addChild(item3); |
| SelManager.textFlow.addChild(list); |
| SelManager.textFlow.flowComposer.updateAllControllers(); |
| |
| //get all three list items start position |
| var firstItemStart:int = item1.getAbsoluteStart(); |
| var secondItemStart:int = item2.getAbsoluteStart(); |
| var thirdItemStart:int = item3.getAbsoluteStart(); |
| var listStart:int = firstItemStart; |
| var listBeforeTab:int = SelManager.textFlow.flowComposer.findLineAtPosition(listStart).x; |
| |
| //first senario, Tab and Shift Tab first list item will promote/demote whole list |
| SelManager.selectRange(listStart, listStart); |
| sendKeyboardGesture(TAB); |
| //check LIST position After dispatch tab event, all items of the list should move a Tab space |
| var listAfterTab:int = SelManager.textFlow.flowComposer.findLineAtPosition(listStart).x; |
| assertTrue("Tab key didn't promote the list correctly", listAfterTab > listBeforeTab); |
| SelManager.selectRange(listStart, listStart); |
| sendKeyboardGesture(SHIFT_TAB); |
| var listAfterShiftTab:int = SelManager.textFlow.flowComposer.findLineAtPosition(listStart).x; |
| assertTrue("SHIFT Tab key didn't demote the list correctly", listBeforeTab == listAfterShiftTab); |
| |
| //second scenario, Tab and Shift Tab second list item will only promote/demote the second list item |
| SelManager.selectRange(secondItemStart, secondItemStart); |
| sendKeyboardGesture(TAB); |
| //check first, second, third LIST Item position After dispatch tab event |
| var firstItemAfterTab:int = SelManager.textFlow.flowComposer.findLineAtPosition(firstItemStart).x; |
| var secondItemAfterTab:int = SelManager.textFlow.flowComposer.findLineAtPosition(secondItemStart).x; |
| var thirdItemAfterTab:int = SelManager.textFlow.flowComposer.findLineAtPosition(thirdItemStart).x; |
| assertTrue("Tab key didn't promote the list correctly", secondItemAfterTab > listBeforeTab && thirdItemAfterTab == listBeforeTab |
| && firstItemAfterTab == listBeforeTab); |
| SelManager.selectRange(secondItemStart, secondItemStart); |
| sendKeyboardGesture(SHIFT_TAB); |
| //check second LIST Item position After dispatch SHIFT TAB event |
| var secondItemAfterShiftTab:int = SelManager.textFlow.flowComposer.findLineAtPosition(secondItemStart).x; |
| assertTrue("SHIFT Tab key didn't demote the list correctly", secondItemAfterShiftTab == listBeforeTab); |
| |
| //third scenario, Tab and Shift Tab third list item will only promote/demote the third list item |
| SelManager.selectRange(thirdItemStart, thirdItemStart); |
| sendKeyboardGesture(TAB); |
| //check first,second, third LIST Item position After dispatch tab event |
| firstItemAfterTab = SelManager.textFlow.flowComposer.findLineAtPosition(firstItemStart).x; |
| secondItemAfterTab = SelManager.textFlow.flowComposer.findLineAtPosition(secondItemStart).x; |
| thirdItemAfterTab = SelManager.textFlow.flowComposer.findLineAtPosition(thirdItemStart).x; |
| assertTrue("Tab key didn't promote the list correctly", thirdItemAfterTab > listBeforeTab && secondItemAfterTab == listBeforeTab |
| && firstItemAfterTab == listBeforeTab); |
| SelManager.selectRange(thirdItemStart, thirdItemStart); |
| sendKeyboardGesture(SHIFT_TAB); |
| //check second LIST Item position After dispatch SHIFT TAB event |
| var thirdItemAfterShiftTab:int = SelManager.textFlow.flowComposer.findLineAtPosition(thirdItemStart).x; |
| assertTrue("SHIFT Tab key didn't demote the list correctly", thirdItemAfterShiftTab == listBeforeTab); |
| } |
| |
| /** |
| * mjzhang : Bug# 2821844 Text controls make bad assumptions with Ctrl Backspace |
| */ |
| [Test] |
| public function CtrlBackspaceTest_Bug2821844():void |
| { |
| SelManager.selectAll(); |
| SelManager.deleteText(); |
| |
| var span:SpanElement = new SpanElement(); |
| span.text = "sad, "; |
| var paragraph:ParagraphElement = new ParagraphElement(); |
| paragraph.addChild(span); |
| SelManager.textFlow.addChild(paragraph); |
| |
| SelManager.selectRange(span.text.length + 1, span.text.length + 1); |
| SelManager.textFlow.flowComposer.updateAllControllers(); |
| |
| sendKeyboardGesture(CTRL_BACKSPACE); |
| |
| assertTrue("Text length should be 3.", span.text.length == 3); |
| } |
| |
| |
| /** |
| * Send a keyboard gesture using values listed above |
| * Code folding extremely recommended here |
| * @param gestureType |
| */ |
| private function sendKeyboardGesture(gestureType:int):void |
| { |
| var charCode:int; |
| var keyCode:int; |
| var ctrlDown:Boolean = false; |
| var shiftDown:Boolean = false; |
| var altDown:Boolean = false; |
| |
| var leftCode:int = 37; |
| var rightCode:int = 39; |
| var upCode:int = 38; |
| var downCode:int = 40; |
| |
| // Arrow keys behave differently on Right to Left Blockprogression |
| // For the sake of test simplicity, I am translating the directions here |
| if (SelManager.textFlow.computedFormat.blockProgression == BlockProgression.RL) |
| { |
| leftCode = 38; |
| rightCode = 40; |
| upCode = 39; |
| downCode = 37; |
| } |
| |
| // Gestures are expected to move with visual order for RTL text |
| // Sending the "opposite" direction in order to test for this |
| if (SelManager.textFlow.computedFormat.direction == Direction.RTL) |
| { |
| leftCode = 39; |
| rightCode = 37; |
| upCode = 38; |
| downCode = 40; |
| } |
| |
| switch (gestureType) |
| { |
| case CTRL_BACKSPACE: |
| charCode = 8; |
| keyCode = 8; |
| ctrlDown = true; |
| break; |
| case CTRL_DELETE: |
| charCode = 127; |
| keyCode = 46; |
| ctrlDown = true; |
| break; |
| case OPT_BACKSPACE: |
| charCode = 8; |
| keyCode = 8; |
| altDown = true; |
| break; |
| case OPT_DELETE: |
| charCode = 127; |
| keyCode = 46; |
| altDown = true; |
| break; |
| case CTRL_LEFT: |
| charCode = 0; |
| keyCode = leftCode; |
| ctrlDown = true; |
| break; |
| case CTRL_RIGHT: |
| charCode = 0; |
| keyCode = rightCode; |
| ctrlDown = true; |
| break; |
| case CTRL_UP: |
| charCode = 0; |
| keyCode = upCode; |
| ctrlDown = true; |
| break; |
| case CTRL_DOWN: |
| charCode = 0; |
| keyCode = downCode; |
| ctrlDown = true; |
| break; |
| case OPT_LEFT: |
| charCode = 0; |
| keyCode = leftCode; |
| altDown = true; |
| break; |
| case OPT_RIGHT: |
| charCode = 0; |
| keyCode = rightCode; |
| altDown = true; |
| break; |
| case OPT_UP: |
| charCode = 0; |
| keyCode = upCode; |
| altDown = true; |
| break; |
| case OPT_DOWN: |
| charCode = 0; |
| keyCode = downCode; |
| altDown = true; |
| break; |
| case SHIFT_CTRL_LEFT: |
| charCode = 0; |
| keyCode = leftCode; |
| ctrlDown = true; |
| shiftDown = true; |
| break; |
| case SHIFT_CTRL_RIGHT: |
| charCode = 0; |
| keyCode = rightCode; |
| ctrlDown = true; |
| shiftDown = true; |
| break; |
| case SHIFT_CTRL_UP: |
| charCode = 0; |
| keyCode = upCode; |
| ctrlDown = true; |
| shiftDown = true; |
| break; |
| case SHIFT_CTRL_DOWN: |
| charCode = 0; |
| keyCode = downCode; |
| ctrlDown = true; |
| shiftDown = true; |
| break; |
| case SHIFT_OPT_LEFT: |
| charCode = 0; |
| keyCode = leftCode; |
| ctrlDown = true; |
| shiftDown = true; |
| break; |
| case SHIFT_OPT_RIGHT: |
| charCode = 0; |
| keyCode = rightCode; |
| ctrlDown = true; |
| shiftDown = true; |
| break; |
| case SHIFT_OPT_UP: |
| charCode = 0; |
| keyCode = upCode; |
| ctrlDown = true; |
| shiftDown = true; |
| break; |
| case SHIFT_OPT_DOWN: |
| charCode = 0; |
| keyCode = downCode; |
| altDown = true; |
| shiftDown = true; |
| break; |
| case HOME: |
| charCode = 0; |
| keyCode = 36; |
| break; |
| case END: |
| charCode = 0; |
| keyCode = 35; |
| break; |
| case SHIFT_HOME: |
| charCode = 0; |
| keyCode = 36; |
| shiftDown = true; |
| break; |
| case SHIFT_END: |
| charCode = 0; |
| keyCode = 35; |
| shiftDown = true; |
| break; |
| case CTRL_HOME: |
| charCode = 0; |
| keyCode = 36; |
| ctrlDown = true; |
| break; |
| case CTRL_END: |
| charCode = 0; |
| keyCode = 35; |
| ctrlDown = true; |
| break; |
| case SHIFT_CTRL_HOME: |
| charCode = 0; |
| keyCode = 36; |
| shiftDown = true; |
| ctrlDown = true; |
| break; |
| case SHIFT_CTRL_END: |
| charCode = 0; |
| keyCode = 35; |
| shiftDown = true; |
| ctrlDown = true; |
| break; |
| case PG_UP: |
| charCode = 0; |
| keyCode = 33; |
| break; |
| case PG_DOWN: |
| charCode = 0; |
| keyCode = 34; |
| break; |
| case SHIFT_PG_UP: |
| charCode = 0; |
| keyCode = 33; |
| shiftDown = true; |
| break; |
| case SHIFT_PG_DOWN: |
| charCode = 0; |
| keyCode = 34; |
| shiftDown = true; |
| break; |
| case UP: |
| charCode = 0; |
| keyCode = upCode; |
| break; |
| case DOWN: |
| charCode = 0; |
| keyCode = downCode; |
| break; |
| case LEFT: |
| charCode = 0; |
| keyCode = leftCode; |
| break; |
| case RIGHT: |
| charCode = 0; |
| keyCode = rightCode; |
| break; |
| case TAB: |
| charCode = 9; |
| keyCode = 9; |
| break; |
| case SHIFT_TAB: |
| charCode = 9; |
| keyCode = 9; |
| shiftDown = true; |
| break; |
| default: |
| return; |
| } |
| |
| var kEvent:KeyboardEvent = new KeyboardEvent(KeyboardEvent.KEY_DOWN, |
| true, false, charCode, keyCode, KeyLocation.STANDARD, ctrlDown, altDown, shiftDown); |
| TestFrame.container["dispatchEvent"](kEvent); |
| } |
| |
| // Returns the text contents of the entire textflow |
| private function getAllText():String |
| { |
| var begIdx:int = SelManager.textFlow.parentRelativeStart; |
| var endIdx:int = SelManager.textFlow.parentRelativeEnd - 1; |
| var outString:String = ""; |
| |
| for (var x:int = begIdx; x < endIdx; x++) |
| { |
| outString += SelManager.textFlow.getCharAtPosition(x); |
| } |
| |
| return outString; |
| } |
| |
| // Returns the presently selected text |
| private function getSelectedText():String |
| { |
| var begIdx:int = SelManager.absoluteStart; |
| var endIdx:int = SelManager.absoluteEnd; |
| var outString:String = ""; |
| |
| for (var x:int = begIdx; x < endIdx; x++) |
| { |
| outString += SelManager.textFlow.getCharAtPosition(x); |
| } |
| |
| return outString; |
| } |
| |
| private function setUpLanguageTest():void |
| { |
| loadTestFile("school.xml"); |
| |
| SelManager.selectRange(75, 75); |
| SelManager.insertText("abc"); |
| } |
| |
| private function setUpTCYTest():void |
| { |
| loadTestFile("tcyTestBase.xml"); |
| |
| SelManager.textFlow.blockProgression = BlockProgression.RL; |
| SelManager.textFlow.direction = Direction.LTR; |
| SelManager.flushPendingOperations(); |
| |
| SelManager.selectRange(15, 22); |
| SelManager.applyTCY(true); |
| SelManager.selectRange(62, 73); |
| SelManager.applyTCY(true); |
| } |
| |
| private function BackspaceGeneralTest(bsKey:int):void |
| { |
| SelManager.selectRange(31, 31); |
| |
| // Test Generic Functionality |
| |
| sendKeyboardGesture(bsKey); |
| |
| assertTrue("Ctrl-Backspace failed to delete previous word", |
| getAllText() == "This is a test of the gesture system."); |
| |
| sendKeyboardGesture(bsKey); |
| |
| assertTrue("Ctrl-Backspace failed to delete previous word", |
| getAllText() == "This is a test of gesture system."); |
| |
| SelManager.selectAll(); |
| sendKeyboardGesture(bsKey); |
| |
| assertTrue("Ctrl-Backspace should not remove all text", |
| getAllText() == "This is a test of gesture system."); |
| |
| // Undo/Redo it all |
| |
| SelManager.undo(); |
| assertTrue("Ctrl-Backspace failed to undo", |
| getAllText() == "This is a test of the gesture system."); |
| |
| SelManager.undo(); |
| assertTrue("Ctrl-Backspace failed to undo", |
| getAllText() == BASIC_TEST); |
| |
| SelManager.redo(); |
| assertTrue("Ctrl-Backspace failed to redo", |
| getAllText() == "This is a test of the gesture system."); |
| |
| SelManager.redo(); |
| assertTrue("Ctrl-Backspace failed to redo", |
| getAllText() == "This is a test of gesture system."); |
| } |
| |
| private function deleteGeneralTest(codeKey:int):void |
| { |
| SelManager.selectRange(22, 22); |
| |
| // Test Generic Functionality |
| |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue("Ctrl-Delete failed to delete previous word", |
| getAllText() == "This is a test of the gesture system."); |
| |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue("Ctrl-Delete failed to delete previous word", |
| getAllText() == "This is a test of the system."); |
| |
| SelManager.selectAll(); |
| sendKeyboardGesture(codeKey); |
| |
| // Undo/Redo it all |
| |
| SelManager.undo(); |
| |
| var endPos:int = SelManager.textFlow.textLength - 1; |
| |
| assertTrue("Ctrl-Delete failed to undo and place correct selection", |
| SelManager.activePosition == endPos && |
| SelManager.anchorPosition == 0); |
| |
| assertTrue("Ctrl-Delete failed to undo", |
| getAllText() == "This is a test of the system."); |
| |
| SelManager.undo(); |
| assertTrue("Ctrl-Delete failed to undo", |
| getAllText() == "This is a test of the gesture system."); |
| |
| SelManager.undo(); |
| assertTrue("Ctrl-Delete failed to undo", |
| getAllText() == BASIC_TEST); |
| |
| SelManager.redo(); |
| assertTrue("Ctrl-Delete failed to redo", |
| getAllText() == "This is a test of the gesture system."); |
| |
| SelManager.redo(); |
| assertTrue("Ctrl-Delete failed to redo", |
| getAllText() == "This is a test of the system."); |
| } |
| |
| private function leftGeneralTest(codeKey:int):void |
| { |
| SelManager.selectRange(31, 31); |
| |
| // Test Generic Functionality |
| |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue("Ctrl-Left failed to move to previous word", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 22); |
| |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue("Ctrl-Left failed to move to previous word", |
| SelManager.activePosition == 18 && |
| SelManager.anchorPosition == 18); |
| } |
| |
| private function rightGeneralTest(codeKey:int):void |
| { |
| SelManager.selectRange(18, 18); |
| |
| // Test Generic Functionality |
| |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue("Ctrl-Right failed to move to next word", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 22); |
| |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue("Ctrl-Right failed to move to next word", |
| SelManager.activePosition == 31 && |
| SelManager.anchorPosition == 31); |
| } |
| |
| private function flowBeginGeneralTest(codeKey:int, strKey:String):void |
| { |
| // Test Generic Functionality |
| |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document beginning", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(46, 46); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document beginning", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| } |
| |
| private function flowBeginLocationTest(codeKey:int, strKey:String):void |
| { |
| SelManager.selectRange(46, 46); |
| SelManager.insertText(HYPHEN_TEST); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(26, 26); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(32, 32); |
| SelManager.insertText(" "); |
| SelManager.selectRange(33, 33); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(53, 53); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document beginning from 2nd paragraph", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(35, 35); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document beginning from image sandwich", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(71, 72); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document beginning from hyphenated word", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(52, 52); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document beginning from paragraph end", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| } |
| |
| private function flowBeginLanguageTest(codeKey:int, strKey:String):void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed in Right to Left Arabic text", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move through a bidi word", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(81, 81); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed movement behavior within a bidi word", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue(strKey + " changed movement behavior within right to left text", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed removal behavior within TCY text", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed removal behavior within TCY text", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 0); |
| } |
| |
| private function flowEndGeneralTest(codeKey:int, strKey:String):void |
| { |
| // Test Generic Functionality |
| |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document end", |
| SelManager.activePosition == SelManager.textFlow.textLength - 1 && |
| SelManager.anchorPosition == SelManager.textFlow.textLength - 1); |
| |
| SelManager.selectRange(0, 0); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document end", |
| SelManager.activePosition == SelManager.textFlow.textLength - 1 && |
| SelManager.anchorPosition == SelManager.textFlow.textLength - 1); |
| } |
| |
| private function flowEndLocationTest(codeKey:int, strKey:String):void |
| { |
| SelManager.selectRange(46, 46); |
| SelManager.insertText(HYPHEN_TEST); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(26, 26); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(32, 32); |
| SelManager.insertText(" "); |
| SelManager.selectRange(33, 33); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(53, 53); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document end from 2nd paragraph", |
| SelManager.activePosition == 100 && |
| SelManager.anchorPosition == 100); |
| |
| SelManager.selectRange(35, 35); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document end from image sandwich", |
| SelManager.activePosition == 100 && |
| SelManager.anchorPosition == 100); |
| |
| SelManager.selectRange(71, 72); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document end from hyphenated word", |
| SelManager.activePosition == 100 && |
| SelManager.anchorPosition == 100); |
| |
| SelManager.selectRange(52, 52); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document end from paragraph end", |
| SelManager.activePosition == 100 && |
| SelManager.anchorPosition == 100); |
| } |
| |
| private function flowEndLanguageTest(codeKey:int, strKey:String):void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed in Right to Left Arabic text", |
| SelManager.activePosition == 297 && |
| SelManager.anchorPosition == 297); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move through a bidi word", |
| SelManager.activePosition == 297 && |
| SelManager.anchorPosition == 297); |
| |
| SelManager.selectRange(81, 81); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed movement behavior within a bidi word", |
| SelManager.activePosition == 297 && |
| SelManager.anchorPosition == 297); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue(strKey + " changed movement behavior within right to left text", |
| SelManager.activePosition == 297 && |
| SelManager.anchorPosition == 297); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed removal behavior within TCY text", |
| SelManager.activePosition == 88 && |
| SelManager.anchorPosition == 88); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed removal behavior within TCY text", |
| SelManager.activePosition == 88 && |
| SelManager.anchorPosition == 88); |
| } |
| |
| private function ShiftFlowEndLanguageTest(codeKey:int, strKey:String):void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(codeKey); |
| |
| // Versions before 2.0 don't allow selection of last char |
| var lastSelectableRangePos:int = SelManager.textFlow.textLength - 1; |
| |
| assertTrue(strKey + " failed in Right to Left Arabic text", |
| SelManager.activePosition == lastSelectableRangePos && |
| SelManager.anchorPosition == 22); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select through a bidi word", |
| SelManager.activePosition == lastSelectableRangePos && |
| SelManager.anchorPosition == 85); |
| |
| SelManager.selectRange(81, 81); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed selection behavior within a bidi word", |
| SelManager.activePosition == lastSelectableRangePos && |
| SelManager.anchorPosition == 81); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue(strKey + " changed selection behavior within right to left text", |
| SelManager.activePosition == lastSelectableRangePos && |
| SelManager.anchorPosition == 261); |
| |
| setUpTCYTest(); |
| |
| lastSelectableRangePos = SelManager.textFlow.textLength - 1; |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed removal behavior within TCY text", |
| SelManager.activePosition == lastSelectableRangePos && |
| SelManager.anchorPosition == 18); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed removal behavior within TCY text", |
| SelManager.activePosition == lastSelectableRangePos && |
| SelManager.anchorPosition == 22); |
| } |
| |
| private function shiftLeftGeneralTest(codeKey:int):void |
| { |
| SelManager.selectRange(31, 31); |
| |
| // Test Generic Functionality |
| |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue("Shift-Ctrl-Left failed to move to previous word", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 31); |
| |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue("Shift-Ctrl-Left failed to move to previous word", |
| SelManager.activePosition == 18 && |
| SelManager.anchorPosition == 31); |
| } |
| |
| private function shiftRightGeneralTest(codeKey:int):void |
| { |
| SelManager.selectRange(18, 18); |
| |
| // Test Generic Functionality |
| |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue("Shift-Ctrl-Right failed to select the next word", |
| SelManager.activePosition == 22 && |
| SelManager.anchorPosition == 18); |
| |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue("Shift-Ctrl-Right failed to select the next word", |
| SelManager.activePosition == 31 && |
| SelManager.anchorPosition == 18); |
| } |
| |
| private function selectBeginGeneralTest(codeKey:int, strKey:String):void |
| { |
| // Test Generic Functionality |
| |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document beginning", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 18); |
| |
| SelManager.selectRange(46, 46); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to move to document beginning", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 46); |
| } |
| |
| public function selectBeginLocationTest(codeKey:int, strKey:String):void |
| { |
| SelManager.selectRange(46, 46); |
| SelManager.insertText(HYPHEN_TEST); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(26, 26); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(32, 32); |
| SelManager.insertText(" "); |
| SelManager.selectRange(33, 33); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| SelManager.selectRange(53, 53); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select to document beginning from 2nd paragraph", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 53); |
| |
| SelManager.selectRange(35, 35); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select to document beginning from image sandwich", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 35); |
| |
| SelManager.selectRange(71, 72); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select to document beginning from hyphenated word", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 71); |
| |
| SelManager.selectRange(52, 52); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select to document beginning from paragraph end", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 52); |
| |
| SelManager.selectRange(43, 62); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to extend selection to document beginning", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 43); |
| } |
| |
| public function shiftFlowBeginLanguageTest(codeKey:int, strKey:String):void |
| { |
| setUpLanguageTest(); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed in Right to Left Arabic text", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 22); |
| |
| SelManager.selectRange(85, 85); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select through a bidi word", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 85); |
| |
| SelManager.selectRange(81, 81); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed selection behavior within a bidi word", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 81); |
| |
| SelManager.selectRange(261, 261); |
| sendKeyboardGesture(codeKey); |
| |
| assertTrue(strKey + " changed selection behavior within right to left text", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 261); |
| |
| setUpTCYTest(); |
| |
| // TCY Tests |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed selection behavior within TCY text", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 18); |
| |
| SelManager.selectRange(22, 22); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " changed selection behavior within TCY text", |
| SelManager.activePosition == 0 && |
| SelManager.anchorPosition == 22); |
| } |
| |
| private function selectEndGeneralTest(codeKey:int, strKey:String):void |
| { |
| // Test Generic Functionality |
| var lastCharacterRangePos:int = SelManager.textFlow.textLength - 1; |
| |
| SelManager.selectRange(18, 18); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select to document end", |
| SelManager.activePosition == lastCharacterRangePos && |
| SelManager.anchorPosition == 18); |
| |
| SelManager.selectRange(0, 0); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select to document end", |
| SelManager.activePosition == lastCharacterRangePos && |
| SelManager.anchorPosition == 0); |
| } |
| |
| private function selectEndLocationTest(codeKey:int, strKey:String):void |
| { |
| SelManager.selectRange(SelManager.textFlow.textLength - 1, SelManager.textFlow.textLength - 1); |
| SelManager.insertText(HYPHEN_TEST); |
| SelManager.splitParagraph(); |
| SelManager.selectRange(20, 20); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(26, 26); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 60); |
| |
| SelManager.selectRange(32, 32); |
| SelManager.insertText(" "); |
| SelManager.selectRange(33, 33); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 40); |
| SelManager.insertInlineGraphic(LoaderUtil.createAbsoluteURL(baseURL, "../../test/testFiles/assets/gremlin.jpg"), 60, 50); |
| |
| // Versions before 2.0 don't allow selection of last char |
| var lastSelectableRangePos:int = SelManager.textFlow.textLength - 1; |
| SelManager.selectRange(53, 53); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select to document end from 2nd paragraph", |
| SelManager.activePosition == lastSelectableRangePos && |
| SelManager.anchorPosition == 53); |
| |
| SelManager.selectRange(35, 35); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select to document end from image sandwich", |
| SelManager.activePosition == lastSelectableRangePos && |
| SelManager.anchorPosition == 35); |
| |
| SelManager.selectRange(72, 72); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select to document end from hyphenated word", |
| SelManager.activePosition == lastSelectableRangePos && |
| SelManager.anchorPosition == 72); |
| |
| SelManager.selectRange(52, 52); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to select to document end from paragraph end", |
| SelManager.activePosition == lastSelectableRangePos && |
| SelManager.anchorPosition == 52); |
| |
| SelManager.selectRange(43, 62); |
| sendKeyboardGesture(codeKey); |
| assertTrue(strKey + " failed to extend selection to document end", |
| SelManager.activePosition == lastSelectableRangePos && |
| SelManager.anchorPosition == 43); |
| } |
| } |
| } |