text

text1
c  d

can't select
abc de f
😃😏

a b

audiofile

This tests the next/previous text marker functions are implemented correctly.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS text.textMarkerRangeLength(textMarkerRange) is 4
PASS text.accessibilityElementForTextMarker(startMarker).isEqual(text) is true
PASS text.accessibilityElementForTextMarker(endMarker).isEqual(text) is true
PASS text.stringForTextMarkerRange(markerRange) is newline
PASS text.stringForTextMarkerRange(markerRange) is 't'
PASS text.stringForTextMarkerRange(markerRange) is newline
PASS text.stringForTextMarkerRange(markerRange) is 't'
PASS text2.textMarkerRangeLength(textMarkerRange2) is 5
Object string for range: c [ATTACHMENT] d
PASS text2.stringForTextMarkerRange(markerRange) is 'd'
PASS text2.stringForTextMarkerRange(markerRange) is '1'
PASS text3.stringForTextMarkerRange(markerRange) is 'ect'
PASS text3.stringForTextMarkerRange(markerRange) is 'sel'
PASS !psw.accessibilityElementForTextMarker(start) is true
PASS text2.accessibilityElementForTextMarker(currentMarker).isEqual(text3) is true
PASS text2.accessibilityElementForTextMarker(currentMarker).isEqual(text2.childAtIndex(2)) is true
PASS text.stringForTextMarkerRange(markerRange) is 'f'
PASS text.stringForTextMarkerRange(markerRange) is 'a'
PASS text.textMarkerRangeLength(emojiTextMarkerRange) is 4
PASS text.stringForTextMarkerRange(text.textMarkerRangeForMarkers(result.previous, result.current)) is '😏'
PASS text.stringForTextMarkerRange(text.textMarkerRangeForMarkers(result.previous, result.current)) is '😃'
PASS text.textMarkerRangeLength(collapsedWhitespaceMarkerRange) is 3
PASS text.stringForTextMarkerRange(text.textMarkerRangeForMarkers(result.previous, result.current)) is 'a'
PASS text.stringForTextMarkerRange(text.textMarkerRangeForMarkers(result.previous, result.current)) is ' '
PASS text.stringForTextMarkerRange(text.textMarkerRangeForMarkers(result.previous, result.current)) is 'b'
PASS text.stringForTextMarkerRange(text.textMarkerRangeForMarkers(result.previous, result.current)) is ' '
PASS text.stringForTextMarkerRange(text.textMarkerRangeForMarkers(result.previous, result.current)) is 'a'
PASS text.stringForTextMarkerRange(textMarkerRange) is 'audio￼file'
PASS text.stringForTextMarkerRange(markerRange) is '￼'
PASS text.stringForTextMarkerRange(markerRange) is '￼'
PASS successfullyParsed is true

TEST COMPLETE

