tests/EditFieldTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 21 Mar 2019 11:09:23 +0000
branchjv
changeset 6607 1da320242101
permissions -rw-r--r--
Issue #261: add test https://swing.fit.cvut.cz/projects/stx-jv/ticket/261
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6607
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 COPYRIGHT (c) 2015 Jan Vrany
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
 COPYRIGHT (c) 2017 Jan Vrany
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
              All Rights Reserved
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 This software is furnished under a license and may be used
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
 only in accordance with the terms of that license and with the
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
 inclusion of the above copyright notice.   This software may not
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 be provided or otherwise made available to, or used by, any
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 other person.  No title to or ownership of the software is
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
 hereby transferred.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
"
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
"{ Package: 'stx:libwidg/tests' }"
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
"{ NameSpace: Smalltalk }"
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
TestCase subclass:#EditFieldTests
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
	instanceVariableNames:'window'
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
	classVariableNames:''
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
	poolDictionaries:''
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
	category:'Views-Basic-Tests'
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
!
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
!EditFieldTests class methodsFor:'documentation'!
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
copyright
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
"
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
 COPYRIGHT (c) 2015 Jan Vrany
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
 COPYRIGHT (c) 2017 Jan Vrany
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
              All Rights Reserved
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
 This software is furnished under a license and may be used
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
 only in accordance with the terms of that license and with the
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
 be provided or otherwise made available to, or used by, any
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
 other person.  No title to or ownership of the software is
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
 hereby transferred.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
"
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
! !
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
!EditFieldTests methodsFor:'running'!
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
setUp
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    | firstEditField |
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    super setUp. 
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    Smalltalk loadPackage:'stx:goodies/sunit/ext/ui'.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    Screen current isNil ifTrue:[ 
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
        Smalltalk openDisplay.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    ].
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    self skipIf:Screen current isNil description:'No display connection'.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    "Add your own code here..."
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    window := StandardSystemView new.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    window label: self printString.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    window extent: 200@100.    
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    firstEditField := EditField origin: (0.0@0.0) in: window.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    firstEditField name: #FirstEditField.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    firstEditField width: 1.0.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    firstEditField model: 'Text to be tested' asValue.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
        
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    window open.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    window waitUntilVisible.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    "Modified: / 23-01-2019 / 16:00:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    "Modified (format): / 20-03-2019 / 13:20:13 / svestkap"
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
!
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
tearDown
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    window isOpen ifTrue: [ 
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
        window close
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    ]
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    "Created: / 23-01-2019 / 15:08:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    "Modified: / 20-03-2019 / 13:17:02 / svestkap"
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
! !
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
!EditFieldTests methodsFor:'tests'!
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
test_issue_261a
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    "Do a screenshot of an EditField before pressing right arrow key and after.  The results should match."
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
    | editField  editFieldInteractor image firstDetectedPixelColors secondDetectedPixelColors |
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
    editField := (window subViews select: [ :subView |
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
        subView name = #FirstEditField
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    ]) first.    
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
        
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
    editFieldInteractor := editField interactor.        
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    editField takeFocus.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    editFieldInteractor type: #Home.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
  
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    Delay waitForSeconds:1.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
    image := Image fromView:window grab:false.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    firstDetectedPixelColors := Set new.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    1 to: 30 do: [ :y |             
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
        5 to: 50 do: [ :x | 
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
           firstDetectedPixelColors add:(image colorAtX:x y:y)
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
        ]
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    ].
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
     
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    editFieldInteractor type: #End.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    editFieldInteractor type: #CursorRight.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
    
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    Delay waitForSeconds:1.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    image := Image fromView:window grab:false.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
    secondDetectedPixelColors := Set new.
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    1 to: 30 do: [ :y |             
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
        5 to: 50 do: [ :x | 
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
           secondDetectedPixelColors add:(image colorAtX:x y:y)
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
        ]
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    ].      
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
 
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
    self assert:(firstDetectedPixelColors = secondDetectedPixelColors).
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    "Created: / 21-03-2019 / 11:05:48 / jv"
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
! !
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
!EditFieldTests class methodsFor:'documentation'!
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
version_HG
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
    ^ '$Changeset: <not expanded> $'
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
! !
1da320242101 Issue #261: add test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127