SmallSense__EditSupportTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 24 Jul 2014 10:27:44 +0100
changeset 257 623cefc35e2e
child 273 404662b42ddf
permissions -rw-r--r--
Fix for DNU when indent-on-paste is enabled. The problem was that getTextSelection... returned either String or StringCollection. This commit fixes that and also add tests (using stx:goodies/sunitext/ui UI testing framework)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
257
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2013-2014 Jan Vrany
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
This library is free software; you can redistribute it and/or
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
modify it under the terms of the GNU Lesser General Public
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
License as published by the Free Software Foundation; either
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
version 2.1 of the License. 
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
This library is distributed in the hope that it will be useful,
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
but WITHOUT ANY WARRANTY; without even the implied warranty of
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
Lesser General Public License for more details.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
You should have received a copy of the GNU Lesser General Public
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
License along with this library; if not, write to the Free Software
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
"
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
"{ Package: 'stx:goodies/smallsense' }"
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
"{ NameSpace: SmallSense }"
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
Smalltalk::TestCase subclass:#EditSupportTests
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
	instanceVariableNames:'codeView codeViewInteractor editService editSupport'
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	classVariableNames:''
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	poolDictionaries:''
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	category:'SmallSense-Tests'
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!EditSupportTests class methodsFor:'documentation'!
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
copyright
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
"
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
Copyright (C) 2013-2014 Jan Vrany
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
This library is free software; you can redistribute it and/or
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
modify it under the terms of the GNU Lesser General Public
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
License as published by the Free Software Foundation; either
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
version 2.1 of the License. 
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
This library is distributed in the hope that it will be useful,
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
but WITHOUT ANY WARRANTY; without even the implied warranty of
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
Lesser General Public License for more details.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
You should have received a copy of the GNU Lesser General Public
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
License along with this library; if not, write to the Free Software
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
"
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
! !
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
!EditSupportTests methodsFor:'accessing-classes'!
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
editSupportClass
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    self subclassResponsibility
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    "Created: / 23-07-2014 / 07:15:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
! !
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
!EditSupportTests methodsFor:'running'!
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
setUp
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    | topView |
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    topView := StandardSystemView new.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    topView extent: 320 @ 200.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    topView label: self printString.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    codeView := Tools::CodeView2 origin: 0.0@0.0 extent: 1.0@1.0 in: topView.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    codeViewInteractor := codeView interactor.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    editService := EditService new.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    editSupport := self editSupportClass new.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    codeView services: (Array with: editService).
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    codeView language: editSupport language.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    editService updateSupport: editSupport.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    topView open.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    topView waitUntilVisible.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    "Created: / 23-07-2014 / 07:15:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    "Modified: / 23-07-2014 / 09:58:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
!
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
tearDown
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
    editService := nil.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    editSupport := nil.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    codeView topView destroy.
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    "Created: / 23-07-2014 / 07:17:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
! !
623cefc35e2e Fix for DNU when indent-on-paste is enabled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93