From c3e6f4f7b6539117d408641fb14e11a166e535a6 Mon Sep 17 00:00:00 2001 From: daboe01 Date: Thu, 29 May 2014 16:27:07 +0200 Subject: [PATCH] automated tests and cleanup --- AppKit/AppKit.j | 1 + AppKit/CPTextView/CPTextView.j | 9 ++-- Tests/AppKit/CPTextViewTest.j | 83 ++++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 Tests/AppKit/CPTextViewTest.j diff --git a/AppKit/AppKit.j b/AppKit/AppKit.j index bada5344d..369b88386 100644 --- a/AppKit/AppKit.j +++ b/AppKit/AppKit.j @@ -110,3 +110,4 @@ @import "CPWindow.j" @import "CPWindowController.j" @import "CPWorkspace.j" +@import "CPTextView.j" diff --git a/AppKit/CPTextView/CPTextView.j b/AppKit/CPTextView/CPTextView.j index cef4ee8ed..543fc7821 100755 --- a/AppKit/CPTextView/CPTextView.j +++ b/AppKit/CPTextView/CPTextView.j @@ -28,6 +28,8 @@ @import "CPTextContainer.j" @import "CPFontManager.j" @import "CPLayoutManager.j" +@import "CPPasteboard.j" +@import "CPColorPanel.j" @class _CPRTFProducer; @class _CPRTFParser; @@ -76,6 +78,7 @@ var kDelegateRespondsTo_textShouldBeginEditing @implementation CPText : CPControl { + int _previousSelectionGranularity; } - (void)changeFont:(id)sender @@ -284,7 +287,6 @@ var kDelegateRespondsTo_textShouldBeginEditing CPRange _selectionRange; CPDictionary _selectedTextAttributes; int _selectionGranularity; - int _previousSelectionGranularity; CPColor _insertionPointColor; @@ -324,7 +326,8 @@ var kDelegateRespondsTo_textShouldBeginEditing if (self) { - self._DOMElement.style.cursor = "text"; + if (self._DOMElement) + self._DOMElement.style.cursor = "text"; _textContainerInset = CGSizeMake(2,0); _textContainerOrigin = CGPointMake(_bounds.origin.x, _bounds.origin.y); [aContainer setTextView:self]; @@ -350,7 +353,7 @@ var kDelegateRespondsTo_textShouldBeginEditing _minSize = CGSizeCreateCopy(aFrame.size); _maxSize = CGSizeMake(aFrame.size.width, 1e7); - _isRichText = YES; + _isRichText = NO; _usesFontPanel = YES; _allowsUndo = YES; _isVerticallyResizable = YES; diff --git a/Tests/AppKit/CPTextViewTest.j b/Tests/AppKit/CPTextViewTest.j new file mode 100644 index 000000000..6eccc7301 --- /dev/null +++ b/Tests/AppKit/CPTextViewTest.j @@ -0,0 +1,83 @@ +@import + +@implementation CPTextViewTest : OJTestCase +{ + CPTextView _textView; +} + +- (void)setUp +{ + _textView = [[CPTextView alloc] initWithFrame:CGRectMake(0,0,500,500)]; + [_textView insertText:"Fusce\nlectus neque cr as eget lectus neque cr as eget lectus cr as eget lectus"]; +} + +- (void)testMoveToEndOfDocument +{ + [_textView setSelectedRange:CPMakeRange(0, 0)]; + [_textView moveToEndOfDocument:self]; + var range = [_textView selectedRange]; + [self assert:range.location equals:[[_textView layoutManager] numberOfCharacters]]; + [self assert:range.length equals:0]; + +} +- (void)testMoveToBeginningOfDocument +{ + [_textView setSelectedRange:CPMakeRange(1, 0)]; + [_textView moveToBeginningOfDocument:self]; + var range = [_textView selectedRange]; + [self assert:range.location equals:0]; + [self assert:range.length equals:0]; +} +- (void)testSelectAll +{ + [_textView setSelectedRange:CPMakeRange(1, 0)]; + [_textView selectAll:self]; + var range = [_textView selectedRange]; + [self assert:range.location equals:0]; + [self assert:range.length equals:[[_textView layoutManager] numberOfCharacters]]; +} +- (void)testMoveToEndOfParagraph +{ + [_textView setSelectedRange:CPMakeRange(1, 0)]; + [_textView moveToEndOfParagraph:self]; + var range = [_textView selectedRange]; + [self assert:range.location equals:5]; + [self assert:range.length equals:0]; +} +- (void)testMoveWordForward +{ + [_textView setSelectedRange:CPMakeRange(19, 0)]; // beginning of "cr" + [_textView moveWordForward:self]; + var range = [_textView selectedRange]; + [self assert:range.location equals:21]; // should be at the end of "cr" + [_textView moveWordForward:self]; + range = [_textView selectedRange]; + [self assert:range.location equals:28]; // should be at the end of "as" +} +- (void)testMoveWordBackward +{ + [_textView setSelectedRange:CPMakeRange(19, 0)]; // beginning of "cr" + [_textView moveWordBackward:self]; + var range = [_textView selectedRange]; + [self assert:range.location equals:13]; // should be at the beginning of "neque" +} +- (void)testMoveWordAndExtend +{ + [_textView setSelectedRange:CPMakeRange(19, 0)]; // beginning of "cr" + [_textView moveRight:self]; // middle of "cr" + [_textView moveWordBackwardAndModifySelection:self]; + var range = [_textView selectedRange]; + [self assert:range.location equals:19]; // "c" of "cr" should be selected + [self assert:range.length equals:1]; +} + +- (void)testCutAndPasteAreDuals +{ + [_textView setSelectedRange:CPMakeRange(19, 2)]; // select "cr" + [_textView cut:self]; + [_textView paste:self]; + var oldString = [_textView stringValue]; + [self assert:[_textView stringValue] equals:oldString]; +} + +@end