tests/FormTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 10 Jan 2017 23:29:23 +0000
branchjv
changeset 7774 af9b89907c6e
parent 7721 97e40cfd96bb
child 7775 27321d1dfbc4
permissions -rw-r--r--
Fixed `FormTests>>test_issue_25a` to work under Xvfb ...which pads each pixel in 24bit images to 32bit quantum with last byte of value 0 (zero) whereas real X.org server for Intel cards pads it with value 255. To support both, ignore every fourth byte in comparison. Also checks that black pixel ha value 0 and that the form bytes are actually padded to 32bit quantums to increase robustness of the test (if this breaks, the assert would catch it making clear what's wrong). However, I yet have to see such an Xserver.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7315
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:libview/tests' }"
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
TestCase subclass:#FormTests
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Compatibility-ST80-Graphics-Display Objects-Tests'
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
7774
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    12
7315
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!FormTests methodsFor:'running'!
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
setUp
7721
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    16
    Display isNil ifTrue:[
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    17
        Smalltalk openDisplay
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    18
    ].
7315
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    self skipIf: Display isNil description: 'Display connection not available'
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    "Created: / 25-04-2016 / 20:30:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
! !
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
!FormTests methodsFor:'tests - regression'!
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
7721
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    26
test_issue_25a
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    27
    "
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    28
    https://swing.fit.cvut.cz/projects/stx-jv/ticket/25
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    29
    "
7774
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    30
    | form font bits1 bits2 |
7721
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    31
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    32
    self skipIf: ConfigurableFeatures hasXFT not description: 'XFT support not compiled in'.
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    33
    form := Form width:32 height:32 depth:24.
7774
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    34
    self assert: form device blackpixel = 0.
7721
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    35
    form paint: Color black on: Color white.
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    36
    form clear.
7774
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    37
    bits1 := form bits.
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    38
    self assert: (bits1 size \\ 4) == 0.
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    39
    1 to: bits1 size by: 4 do:[:i |
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    40
        self assert: ((i \\ 4) == 0 or:[ (bits1 at: i) == 255 ])
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    41
    ].
7721
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    42
    font := XftFontDescription for: SimpleView defaultFont.
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    43
    form font: font.
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    44
    form displayString: 'X' x: 16 y: 16.
7774
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    45
    bits2 := form bits.
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    46
    self assert: (bits1 size \\ 4) == 0.
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    47
    self assert: (bits1 asArray = bits2 asArray) not
7721
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    48
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    49
    "Created: / 26-11-2016 / 00:23:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7774
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    50
    "Modified: / 10-01-2017 / 23:22:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7721
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    51
!
97e40cfd96bb Issue #25: Added tests to check XFT rendering into pixmaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7315
diff changeset
    52
7315
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
test_issue_82
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    "
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    https://swing.fit.cvut.cz/projects/stx-jv/ticket/82
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    "
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    | f |
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    f := Form width:8 height:8 depth:1.
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    f colorMap:(Array with:Screen current blackColor with: Screen current whiteColor).
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    f clear.
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    f paint:(Color colorId:1).  
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    self assert: (f bits allSatisfy:[:byte | byte = 0 ])
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    "Created: / 25-04-2016 / 20:04:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
! !
aed1314a2448 Issue #82: UIPainterView does not understand: #deviceClippingRectangle
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
7774
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    67
!FormTests class methodsFor:'documentation'!
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    68
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    69
version_HG
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    70
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    71
    ^ '$Changeset: <not expanded> $'
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    72
! !
af9b89907c6e Fixed `FormTests>>test_issue_25a` to work under Xvfb
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7721
diff changeset
    73