Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/Spec2-Core/SpAbstractFormButtonPresenter.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ SpAbstractFormButtonPresenter >> click [
"Simulate a click on the checkbox
Used when the checkbox is a list item"

self isEnabled ifFalse: [ ^ self ].
self toggleState
]

Expand Down
4 changes: 3 additions & 1 deletion src/Spec2-Core/SpToolbarButtonPresenter.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,10 @@ SpToolbarButtonPresenter >> badge: aString [

{ #category : 'simulating' }
SpToolbarButtonPresenter >> click [
"Simulate a click on the toolbar button."

self action cull: self
self isEnabled ifFalse: [ ^ self ].
self performAction
]

{ #category : 'execution' }
Expand Down
58 changes: 30 additions & 28 deletions src/Spec2-Tests/SpButtonPresenterTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,16 @@ SpButtonPresenterTest >> morph [

{ #category : 'tests' }
SpButtonPresenterTest >> testAction [
| actionExecuted |

| actionExecuted |
actionExecuted := false.
self assert: actionExecuted equals: false.

presenter action: [ actionExecuted := true ].

self openInstance.
self assert: actionExecuted equals: false.
self deny: actionExecuted.

presenter adapter action.
self assert: actionExecuted equals: true
self assert: actionExecuted
]

{ #category : 'tests' }
Expand All @@ -50,6 +49,25 @@ SpButtonPresenterTest >> testAskBeforeChanging [
self assert: state
]

{ #category : 'tests' }
SpButtonPresenterTest >> testClickDoesNotExecuteActionWhenButtonIsDisabled [

| actionExecuted |
actionExecuted := false.

presenter action: [ actionExecuted := true ].
self openInstance.
self deny: actionExecuted.

presenter enabled: false.
presenter click.
self deny: actionExecuted.

presenter enabled: true.
presenter click.
self assert: actionExecuted
]

{ #category : 'tests' }
SpButtonPresenterTest >> testContextMenu [
| menu changed |
Expand Down Expand Up @@ -82,69 +100,53 @@ SpButtonPresenterTest >> testWhenActionChangedDo [
newBlock := [ 1 ].
oldBlock := presenter action.

self assert: actionModified equals: false.
self deny: actionModified.

presenter whenActionChangedDo: [ :new :old |
self assert: old equals: oldBlock.
self assert: new equals: newBlock.
actionModified := true ].

self openInstance.

self assert: actionModified equals: false.
self deny: actionModified.

presenter action: newBlock.

self assert: actionModified equals: true
self assert: actionModified
]

{ #category : 'tests' }
SpButtonPresenterTest >> testWhenActionPerformedDo [

| actionExecuted actionPerformed |

actionExecuted := false.
actionPerformed := false.

self assert: actionExecuted equals: false.
self assert: actionPerformed equals: false.

presenter action: [ actionExecuted := true ].
presenter whenActionPerformedDo: [ actionPerformed := true ].

self openInstance.

self assert: actionExecuted equals: false.
self assert: actionPerformed equals: false.
self deny: actionExecuted.
self deny: actionPerformed.

presenter adapter action.

self assert: actionExecuted equals: true.
self assert: actionPerformed equals: true.
self assert: actionExecuted.
self assert: actionPerformed

]

{ #category : 'tests' }
SpButtonPresenterTest >> testWhenActionPerformedDoAfterAction [

| actionExecuted actionPerformed |

actionExecuted := 0.
actionPerformed := 0.

self assert: actionExecuted equals: 0.
self assert: actionPerformed equals: 0.

presenter action: [ actionExecuted := Time microsecondClockValue. 1 milliSecond wait ].
presenter whenActionPerformedDo: [ actionPerformed := Time microsecondClockValue ].

self openInstance.

self assert: actionExecuted equals: 0.
self assert: actionPerformed equals: 0.

presenter adapter action.

self assert: actionExecuted < actionPerformed.
]

Expand Down
14 changes: 14 additions & 0 deletions src/Spec2-Tests/SpCheckboxPresenterTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,20 @@ SpCheckboxPresenterTest >> testActivateRaisesChangedEventOnce [
whenDoing: [ presenter state: true ]
]

{ #category : 'tests' }
SpCheckboxPresenterTest >> testClickDoesNotToggleStateWhenCheckboxIsDisabled [

presenter state: false.

presenter enabled: false.
presenter click.
self deny: presenter state.

presenter enabled: true.
presenter click.
self assert: presenter state
]

{ #category : 'tests' }
SpCheckboxPresenterTest >> testDeactivateDoesNotRaiseActivateEvent [

Expand Down
20 changes: 20 additions & 0 deletions src/Spec2-Tests/SpRadioButtonPresenterTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,23 @@ Class {
SpRadioButtonPresenterTest >> classToTest [
^ SpRadioButtonPresenter
]

{ #category : 'tests' }
SpRadioButtonPresenterTest >> testClickDoesNotToggleStateWhenRadioButtonIsDisabled [

| otherRadioButton |
otherRadioButton := self classToTest new.
presenter associatedRadioButtons: { otherRadioButton }.
otherRadioButton state: true.
self deny: presenter state.

presenter enabled: false.
presenter click.
self deny: presenter state.
self assert: otherRadioButton state.

presenter enabled: true.
presenter click.
self assert: presenter state.
self deny: otherRadioButton state
]
27 changes: 27 additions & 0 deletions src/Spec2-Tests/SpSwitchPresenterTest.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Class {
#name : 'SpSwitchPresenterTest',
#superclass : 'SpSpecTest',
#category : 'Spec2-Tests-Core-Widgets',
#package : 'Spec2-Tests',
#tag : 'Core-Widgets'
}

{ #category : 'accessing' }
SpSwitchPresenterTest >> classToTest [

^ SpSwitchPresenter
]

{ #category : 'tests' }
SpSwitchPresenterTest >> testClickDoesNotToggleStateWhenSwitchIsDisabled [

presenter state: false.

presenter enabled: false.
presenter click.
self deny: presenter state.

presenter enabled: true.
presenter click.
self assert: presenter state
]
27 changes: 27 additions & 0 deletions src/Spec2-Tests/SpToggleButtonPresenterTest.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Class {
#name : 'SpToggleButtonPresenterTest',
#superclass : 'SpSpecTest',
#category : 'Spec2-Tests-Core-Widgets',
#package : 'Spec2-Tests',
#tag : 'Core-Widgets'
}

{ #category : 'accessing' }
SpToggleButtonPresenterTest >> classToTest [

^ SpToggleButtonPresenter
]

{ #category : 'tests' }
SpToggleButtonPresenterTest >> testClickDoesNotToggleStateWhenToggleButtonIsDisabled [

presenter state: false.

presenter enabled: false.
presenter click.
self deny: presenter state.

presenter enabled: true.
presenter click.
self assert: presenter state
]
32 changes: 32 additions & 0 deletions src/Spec2-Tests/SpToolbarButtonPresenterTest.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
Class {
#name : 'SpToolbarButtonPresenterTest',
#superclass : 'SpSpecTest',
#category : 'Spec2-Tests-Core-Widgets',
#package : 'Spec2-Tests',
#tag : 'Core-Widgets'
}

{ #category : 'accessing' }
SpToolbarButtonPresenterTest >> classToTest [

^ SpToolbarButtonPresenter
]

{ #category : 'tests' }
SpToolbarButtonPresenterTest >> testClickDoesNotExecuteActionWhenButtonIsDisabled [

| actionExecuted |
actionExecuted := false.

presenter action: [ actionExecuted := true ].
self openInstance.
self deny: actionExecuted.

presenter enabled: false.
presenter click.
self deny: actionExecuted.

presenter enabled: true.
presenter click.
self assert: actionExecuted
]
Loading