<div dir="ltr">Now I'm starting to cuss! I don't know why you didn't just start over again but I cannot tolerate a corrupt MC model from the get-go for this new package.<div><br></div><div>MC cannot support two versions with the same exact name, _especially_ in the same ancestry!<br>
<div><br></div><div>I didn't want to hassle you yet again so I went ahead and re-did it -- made ToolBuilder-Tests-cmm.1 and updated update-fbs.272 to point to that one. Deleted your fbs.1 from the repository.</div></div>
<div><br></div><div> - Chris</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Dec 15, 2013 at 4:25 PM, <span dir="ltr"><<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Chris Muller uploaded a new version of ToolBuilder-Tests to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/ToolBuilder-Tests-cmm.1.mcz" target="_blank">http://source.squeak.org/trunk/ToolBuilder-Tests-cmm.1.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: ToolBuilder-Tests-cmm.1<br>
Author: cmm<br>
Time: 15 December 2013, 4:25:47.507 pm<br>
UUID: e77685b9-ca09-40c0-b84e-6caee75f4075<br>
Ancestors:<br>
<br>
ToolBuilder-Tests contains the specification that a compliant ToolBuilder must fulfill, together with the unit tests for ToolBuilder-Kernel.<br>
<br>
==================== Snapshot ====================<br>
<br>
SystemOrganization addCategory: #'ToolBuilder-Tests'!<br>
<br>
TestCase subclass: #PluggableMenuItemSpecTests<br>
instanceVariableNames: ''<br>
classVariableNames: ''<br>
poolDictionaries: ''<br>
category: 'ToolBuilder-Tests'!<br>
<br>
----- Method: PluggableMenuItemSpecTests>>testBeCheckableMakesItemCheckable (in category 'as yet unclassified') -----<br>
testBeCheckableMakesItemCheckable<br>
| itemSpec |<br>
itemSpec := PluggableMenuItemSpec new.<br>
itemSpec beCheckable.<br>
self assert: itemSpec isCheckable description: 'Item not checkable'.!<br>
<br>
----- Method: PluggableMenuItemSpecTests>>testByDefaultNotCheckable (in category 'as yet unclassified') -----<br>
testByDefaultNotCheckable<br>
| itemSpec |<br>
itemSpec := PluggableMenuItemSpec new.<br>
self deny: itemSpec isCheckable.!<br>
<br>
----- Method: PluggableMenuItemSpecTests>>testNoMarkerMakesItemChecked (in category 'as yet unclassified') -----<br>
testNoMarkerMakesItemChecked<br>
| itemSpec |<br>
itemSpec := PluggableMenuItemSpec new.<br>
itemSpec label: '<no>no'.<br>
itemSpec analyzeLabel.<br>
self assert: itemSpec isCheckable description: 'item not checkable'.<br>
self deny: itemSpec checked description: 'item checked'.!<br>
<br>
----- Method: PluggableMenuItemSpecTests>>testOffMarkerMakesItemChecked (in category 'as yet unclassified') -----<br>
testOffMarkerMakesItemChecked<br>
| itemSpec |<br>
itemSpec := PluggableMenuItemSpec new.<br>
itemSpec label: '<off>off'.<br>
itemSpec analyzeLabel.<br>
self assert: itemSpec isCheckable description: 'item not checkable'.<br>
self deny: itemSpec checked description: 'item checked'.!<br>
<br>
----- Method: PluggableMenuItemSpecTests>>testOnMarkerMakesItemChecked (in category 'as yet unclassified') -----<br>
testOnMarkerMakesItemChecked<br>
| itemSpec |<br>
itemSpec := PluggableMenuItemSpec new.<br>
itemSpec label: '<on>on'.<br>
itemSpec analyzeLabel.<br>
self assert: itemSpec isCheckable description: 'item not checkable'.<br>
self assert: itemSpec isCheckable description: 'item not checked'.!<br>
<br>
----- Method: PluggableMenuItemSpecTests>>testYesMarkerMakesItemChecked (in category 'as yet unclassified') -----<br>
testYesMarkerMakesItemChecked<br>
| itemSpec |<br>
itemSpec := PluggableMenuItemSpec new.<br>
itemSpec label: '<yes>on'.<br>
itemSpec analyzeLabel.<br>
self assert: itemSpec isCheckable description: 'item not checkable'.<br>
self assert: itemSpec isCheckable description: 'item not checked'.!<br>
<br>
TestCase subclass: #ToolBuilderTests<br>
instanceVariableNames: 'builder widget queries'<br>
classVariableNames: ''<br>
poolDictionaries: ''<br>
category: 'ToolBuilder-Tests'!<br>
<br>
!ToolBuilderTests commentStamp: 'ar 2/11/2005 15:01' prior: 0!<br>
Some tests to make sure ToolBuilder does what it says.!<br>
<br>
----- Method: ToolBuilderTests class>>isAbstract (in category 'testing') -----<br>
isAbstract<br>
^self == ToolBuilderTests!<br>
<br>
----- Method: ToolBuilderTests>>acceptWidgetText (in category 'support') -----<br>
acceptWidgetText<br>
"accept text in widget"<br>
^ self subclassResponsibility!<br>
<br>
----- Method: ToolBuilderTests>>assertItemFiresWith: (in category 'tests-menus') -----<br>
assertItemFiresWith: aBlock<br>
| spec |<br>
spec := builder pluggableMenuSpec new.<br>
spec model: self.<br>
aBlock value: spec.<br>
widget := builder build: spec.<br>
queries := IdentitySet new.<br>
self fireMenuItemWidget.<br>
self assert: (queries includes: #fireMenuAction)!<br>
<br>
----- Method: ToolBuilderTests>>buttonWidgetEnabled (in category 'support') -----<br>
buttonWidgetEnabled<br>
"Answer whether the current widget (a button) is currently enabled"<br>
<br>
^ widget getModelState!<br>
<br>
----- Method: ToolBuilderTests>>changeListWidget (in category 'support') -----<br>
changeListWidget<br>
"Change the list widget's selection index"<br>
self subclassResponsibility!<br>
<br>
----- Method: ToolBuilderTests>>expectedButtonSideEffects (in category 'support') -----<br>
expectedButtonSideEffects<br>
"side effect queries we expect to see on buttons"<br>
^#()!<br>
<br>
----- Method: ToolBuilderTests>>fireButton (in category 'tests-button') -----<br>
fireButton<br>
queries add: #fireButton.!<br>
<br>
----- Method: ToolBuilderTests>>fireButtonWidget (in category 'support') -----<br>
fireButtonWidget<br>
"Fire the widget, e.g., perform what is needed for the guy to trigger its action"<br>
self subclassResponsibility!<br>
<br>
----- Method: ToolBuilderTests>>fireMenuAction (in category 'tests-menus') -----<br>
fireMenuAction<br>
queries add: #fireMenuAction!<br>
<br>
----- Method: ToolBuilderTests>>fireMenuItemWidget (in category 'tests-menus') -----<br>
fireMenuItemWidget<br>
self subclassResponsibility!<br>
<br>
----- Method: ToolBuilderTests>>getChildren (in category 'tests-panel') -----<br>
getChildren<br>
queries add: #getChildren.<br>
^#()!<br>
<br>
----- Method: ToolBuilderTests>>getChildrenOf: (in category 'tests-trees') -----<br>
getChildrenOf: item<br>
queries add: #getChildrenOf.<br>
^(1 to: 9) asArray!<br>
<br>
----- Method: ToolBuilderTests>>getColor (in category 'tests-text') -----<br>
getColor<br>
queries add: #getColor.<br>
^Color tan!<br>
<br>
----- Method: ToolBuilderTests>>getEnabled (in category 'tests-button') -----<br>
getEnabled<br>
queries add: #getEnabled.<br>
^true!<br>
<br>
----- Method: ToolBuilderTests>>getHelpOf: (in category 'tests-trees') -----<br>
getHelpOf: item<br>
^'help'!<br>
<br>
----- Method: ToolBuilderTests>>getIconOf: (in category 'tests-trees') -----<br>
getIconOf: item<br>
queries add: #getIconOf.<br>
^nil!<br>
<br>
----- Method: ToolBuilderTests>>getLabel (in category 'tests-button') -----<br>
getLabel<br>
queries add: #getLabel.<br>
^'TestLabel'!<br>
<br>
----- Method: ToolBuilderTests>>getLabelOf: (in category 'tests-trees') -----<br>
getLabelOf: item<br>
queries add: #getLabelOf.<br>
^item asString!<br>
<br>
----- Method: ToolBuilderTests>>getList (in category 'tests-lists') -----<br>
getList<br>
queries add: #getList.<br>
^(1 to: 100) collect:[:i| i printString].!<br>
<br>
----- Method: ToolBuilderTests>>getListIndex (in category 'tests-lists') -----<br>
getListIndex<br>
queries add: #getListIndex.<br>
^13!<br>
<br>
----- Method: ToolBuilderTests>>getListSelection (in category 'tests-lists') -----<br>
getListSelection<br>
queries add: #getListSelection.<br>
^'55'!<br>
<br>
----- Method: ToolBuilderTests>>getMenu: (in category 'tests-lists') -----<br>
getMenu: aMenu<br>
queries add: #getMenu.<br>
^aMenu!<br>
<br>
----- Method: ToolBuilderTests>>getRoots (in category 'tests-trees') -----<br>
getRoots<br>
queries add: #getRoots.<br>
^(1 to: 9) asArray!<br>
<br>
----- Method: ToolBuilderTests>>getState (in category 'tests-button') -----<br>
getState<br>
queries add: #getState.<br>
^true!<br>
<br>
----- Method: ToolBuilderTests>>getText (in category 'tests-text') -----<br>
getText<br>
queries add: #getText.<br>
^Text new!<br>
<br>
----- Method: ToolBuilderTests>>getTextSelection (in category 'tests-text') -----<br>
getTextSelection<br>
queries add: #getTextSelection.<br>
^(1 to: 0)!<br>
<br>
----- Method: ToolBuilderTests>>getTreeSelectionPath (in category 'tests-trees') -----<br>
getTreeSelectionPath<br>
queries add: #getTreeSelectionPath.<br>
^{2. 4. 3}!<br>
<br>
----- Method: ToolBuilderTests>>hasChildren: (in category 'tests-trees') -----<br>
hasChildren: item<br>
queries add: #hasChildren.<br>
^true!<br>
<br>
----- Method: ToolBuilderTests>>keyPress: (in category 'tests-lists') -----<br>
keyPress: key<br>
queries add: #keyPress.!<br>
<br>
----- Method: ToolBuilderTests>>makeButton (in category 'tests-button') -----<br>
makeButton<br>
| spec |<br>
spec := self makeButtonSpec.<br>
widget := builder build: spec.<br>
^widget!<br>
<br>
----- Method: ToolBuilderTests>>makeButtonSpec (in category 'tests-button') -----<br>
makeButtonSpec<br>
| spec |<br>
spec := builder pluggableButtonSpec new.<br>
spec name: #button.<br>
spec model: self.<br>
spec label: #getLabel.<br>
spec color: #getColor.<br>
spec state: #getState.<br>
spec enabled: #getEnabled.<br>
^spec!<br>
<br>
----- Method: ToolBuilderTests>>makeInputField (in category 'tests-input') -----<br>
makeInputField<br>
| spec |<br>
spec := self makeInputFieldSpec.<br>
widget := builder build: spec.!<br>
<br>
----- Method: ToolBuilderTests>>makeInputFieldSpec (in category 'tests-input') -----<br>
makeInputFieldSpec<br>
| spec |<br>
spec := builder pluggableInputFieldSpec new.<br>
spec name: #input.<br>
spec model: self.<br>
spec getText: #getText.<br>
spec selection: #getTextSelection.<br>
spec color: #getColor.<br>
"<-- the following cannot be tested very well -->"<br>
spec setText: #setText:.<br>
spec menu: #getMenu:.<br>
^spec!<br>
<br>
----- Method: ToolBuilderTests>>makeItemList (in category 'tests-lists') -----<br>
makeItemList<br>
| spec |<br>
spec := self makeItemListSpec.<br>
widget := builder build: spec.!<br>
<br>
----- Method: ToolBuilderTests>>makeItemListSpec (in category 'tests-lists') -----<br>
makeItemListSpec<br>
| spec |<br>
spec := builder pluggableListSpec new.<br>
spec name: #list.<br>
spec model: self.<br>
spec list: #getList.<br>
spec getSelected: #getListSelection.<br>
"<-- the following cannot be tested very well -->"<br>
spec setSelected: #setListSelection:.<br>
spec menu: #getMenu:.<br>
spec keyPress: #keyPress:.<br>
^spec!<br>
<br>
----- Method: ToolBuilderTests>>makeList (in category 'tests-lists') -----<br>
makeList<br>
| spec |<br>
spec := self makeListSpec.<br>
widget := builder build: spec.!<br>
<br>
----- Method: ToolBuilderTests>>makeListSpec (in category 'tests-lists') -----<br>
makeListSpec<br>
| spec |<br>
spec := builder pluggableListSpec new.<br>
spec name: #list.<br>
spec model: self.<br>
spec list: #getList.<br>
spec getIndex: #getListIndex.<br>
"<-- the following cannot be tested very well -->"<br>
spec setIndex: #setListIndex:.<br>
spec menu: #getMenu:.<br>
spec keyPress: #keyPress:.<br>
^spec!<br>
<br>
----- Method: ToolBuilderTests>>makePanel (in category 'tests-panel') -----<br>
makePanel<br>
| spec |<br>
spec := self makePanelSpec.<br>
widget := builder build: spec.!<br>
<br>
----- Method: ToolBuilderTests>>makePanelSpec (in category 'tests-panel') -----<br>
makePanelSpec<br>
| spec |<br>
spec := builder pluggablePanelSpec new.<br>
spec name: #panel.<br>
spec model: self.<br>
spec children: #getChildren.<br>
^spec!<br>
<br>
----- Method: ToolBuilderTests>>makeText (in category 'tests-text') -----<br>
makeText<br>
| spec |<br>
spec := self makeTextSpec.<br>
widget := builder build: spec.!<br>
<br>
----- Method: ToolBuilderTests>>makeTextSpec (in category 'tests-text') -----<br>
makeTextSpec<br>
| spec |<br>
spec := builder pluggableTextSpec new.<br>
spec name: #text.<br>
spec model: self.<br>
spec getText: #getText.<br>
spec selection: #getTextSelection.<br>
spec color: #getColor.<br>
"<-- the following cannot be tested very well -->"<br>
spec setText: #setText:.<br>
spec menu: #getMenu:.<br>
^spec!<br>
<br>
----- Method: ToolBuilderTests>>makeTree (in category 'tests-trees') -----<br>
makeTree<br>
| spec |<br>
spec := self makeTreeSpec.<br>
widget := builder build: spec.!<br>
<br>
----- Method: ToolBuilderTests>>makeTreeSpec (in category 'tests-trees') -----<br>
makeTreeSpec<br>
| spec |<br>
spec := builder pluggableTreeSpec new.<br>
spec name: #tree.<br>
spec model: self.<br>
spec roots: #getRoots.<br>
"<-- the following cannot be tested very well -->"<br>
spec getSelectedPath: #getTreeSelectionPath.<br>
spec getChildren: #getChildrenOf:.<br>
spec hasChildren: #hasChildren:.<br>
spec label: #getLabelOf:.<br>
spec icon: #getIconOf:.<br>
spec help: #getHelpOf:.<br>
spec setSelected: #setTreeSelection:.<br>
spec menu: #getMenu:.<br>
spec keyPress: #keyPress:.<br>
^spec!<br>
<br>
----- Method: ToolBuilderTests>>makeWindow (in category 'tests-window') -----<br>
makeWindow<br>
| spec |<br>
spec := self makeWindowSpec.<br>
widget := builder build: spec.!<br>
<br>
----- Method: ToolBuilderTests>>makeWindowSpec (in category 'tests-window') -----<br>
makeWindowSpec<br>
| spec |<br>
spec := builder pluggableWindowSpec new.<br>
spec name: #window.<br>
spec model: self.<br>
spec children: #getChildren.<br>
spec label: #getLabel.<br>
spec closeAction: #noteWindowClosed.<br>
^spec!<br>
<br>
----- Method: ToolBuilderTests>>noteWindowClosed (in category 'tests-window') -----<br>
noteWindowClosed<br>
queries add: #noteWindowClosed.!<br>
<br>
----- Method: ToolBuilderTests>>openWindow (in category 'tests-window') -----<br>
openWindow<br>
| spec |<br>
spec := self makeWindowSpec.<br>
widget := builder open: spec.!<br>
<br>
----- Method: ToolBuilderTests>>returnFalse (in category 'support') -----<br>
returnFalse<br>
^false!<br>
<br>
----- Method: ToolBuilderTests>>returnTrue (in category 'support') -----<br>
returnTrue<br>
^true!<br>
<br>
----- Method: ToolBuilderTests>>setListIndex: (in category 'tests-lists') -----<br>
setListIndex: index<br>
queries add: #setListIndex.!<br>
<br>
----- Method: ToolBuilderTests>>setListSelection: (in category 'tests-lists') -----<br>
setListSelection: newIndex<br>
queries add: #setListSelection.!<br>
<br>
----- Method: ToolBuilderTests>>setText: (in category 'tests-text') -----<br>
setText: newText<br>
queries add: #setText.<br>
^false!<br>
<br>
----- Method: ToolBuilderTests>>setTreeSelection: (in category 'tests-trees') -----<br>
setTreeSelection: node<br>
queries add: #setTreeSelection.!<br>
<br>
----- Method: ToolBuilderTests>>setUp (in category 'support') -----<br>
setUp<br>
queries := IdentitySet new.!<br>
<br>
----- Method: ToolBuilderTests>>shutDown (in category 'support') -----<br>
shutDown<br>
self myDependents: nil!<br>
<br>
----- Method: ToolBuilderTests>>testAddTargetSelectorArgumentList (in category 'tests-menus') -----<br>
testAddTargetSelectorArgumentList<br>
self assertItemFiresWith:<br>
[:spec | spec<br>
add: 'Menu Item'<br>
target: self<br>
selector: #fireMenuAction<br>
argumentList: #()]!<br>
<br>
----- Method: ToolBuilderTests>>testButtonFiresBlock (in category 'tests-button') -----<br>
testButtonFiresBlock<br>
| spec |<br>
spec := builder pluggableButtonSpec new.<br>
spec model: self.<br>
spec action: [self fireButton].<br>
widget := builder build: spec.<br>
queries := IdentitySet new.<br>
self fireButtonWidget.<br>
self assert: (queries includes: #fireButton).!<br>
<br>
----- Method: ToolBuilderTests>>testButtonFiresMessage (in category 'tests-button') -----<br>
testButtonFiresMessage<br>
| spec |<br>
spec := builder pluggableButtonSpec new.<br>
spec model: self.<br>
spec action: (MessageSend receiver: self selector: #fireButton arguments: #()).<br>
widget := builder build: spec.<br>
queries := IdentitySet new.<br>
self fireButtonWidget.<br>
self assert: (queries includes: #fireButton).!<br>
<br>
----- Method: ToolBuilderTests>>testButtonFiresSymbol (in category 'tests-button') -----<br>
testButtonFiresSymbol<br>
| spec |<br>
spec := builder pluggableButtonSpec new.<br>
spec model: self.<br>
spec action: #fireButton.<br>
widget := builder build: spec.<br>
queries := IdentitySet new.<br>
self fireButtonWidget.<br>
self assert: (queries includes: #fireButton).!<br>
<br>
----- Method: ToolBuilderTests>>testButtonInitiallyDisabled (in category 'tests-button') -----<br>
testButtonInitiallyDisabled<br>
| spec |<br>
spec := builder pluggableButtonSpec new.<br>
spec model: self.<br>
spec label: #getLabel.<br>
spec color: #getColor.<br>
spec state: #getState.<br>
spec enabled: #returnFalse.<br>
widget := builder build: spec.<br>
self deny: (self buttonWidgetEnabled)!<br>
<br>
----- Method: ToolBuilderTests>>testButtonInitiallyDisabledSelector (in category 'tests-button') -----<br>
testButtonInitiallyDisabledSelector<br>
| spec |<br>
spec := builder pluggableButtonSpec new.<br>
spec model: self.<br>
spec label: #getLabel.<br>
spec color: #getColor.<br>
spec state: #getState.<br>
spec enabled: #returnFalse.<br>
widget := builder build: spec.<br>
self deny: (self buttonWidgetEnabled)!<br>
<br>
----- Method: ToolBuilderTests>>testButtonInitiallyEnabled (in category 'tests-button') -----<br>
testButtonInitiallyEnabled<br>
| spec |<br>
spec := builder pluggableButtonSpec new.<br>
spec model: self.<br>
spec label: #getLabel.<br>
spec color: #getColor.<br>
spec state: #getState.<br>
spec enabled: #returnTrue.<br>
widget := builder build: spec.<br>
self assert: (self buttonWidgetEnabled)!<br>
<br>
----- Method: ToolBuilderTests>>testButtonInitiallyEnabledSelector (in category 'tests-button') -----<br>
testButtonInitiallyEnabledSelector<br>
| spec |<br>
spec := builder pluggableButtonSpec new.<br>
spec model: self.<br>
spec label: #getLabel.<br>
spec color: #getColor.<br>
spec state: #getState.<br>
spec enabled: #returnTrue.<br>
widget := builder build: spec.<br>
self assert: (self buttonWidgetEnabled)!<br>
<br>
----- Method: ToolBuilderTests>>testButtonWidgetID (in category 'tests-button') -----<br>
testButtonWidgetID<br>
self makeButton.<br>
self assert: (builder widgetAt: #button) == widget.!<br>
<br>
----- Method: ToolBuilderTests>>testGetButtonColor (in category 'tests-button') -----<br>
testGetButtonColor<br>
self makeButton.<br>
queries := IdentitySet new.<br>
self changed: #getColor.<br>
self assert: (queries includes: #getColor).<br>
self assert: self widgetColor = self getColor.!<br>
<br>
----- Method: ToolBuilderTests>>testGetButtonEnabled (in category 'tests-button') -----<br>
testGetButtonEnabled<br>
self makeButton.<br>
queries := IdentitySet new.<br>
self changed: #getEnabled.<br>
self assert: (queries includes: #getEnabled).!<br>
<br>
----- Method: ToolBuilderTests>>testGetButtonLabel (in category 'tests-button') -----<br>
testGetButtonLabel<br>
self makeButton.<br>
queries := IdentitySet new.<br>
self changed: #getLabel.<br>
self assert: (queries includes: #getLabel).!<br>
<br>
----- Method: ToolBuilderTests>>testGetButtonSideEffects (in category 'tests-button') -----<br>
testGetButtonSideEffects<br>
self makeButton.<br>
queries := IdentitySet new.<br>
self changed: #testSignalWithNoDiscernableEffect.<br>
self expectedButtonSideEffects do:[:sym|<br>
self assert: (queries includes: sym).<br>
queries remove: sym.<br>
].<br>
self assert: queries isEmpty.!<br>
<br>
----- Method: ToolBuilderTests>>testGetButtonState (in category 'tests-button') -----<br>
testGetButtonState<br>
self makeButton.<br>
queries := IdentitySet new.<br>
self changed: #getState.<br>
self assert: (queries includes: #getState).!<br>
<br>
----- Method: ToolBuilderTests>>testGetInputFieldColor (in category 'tests-input') -----<br>
testGetInputFieldColor<br>
self makeInputField.<br>
queries := IdentitySet new.<br>
self changed: #getColor.<br>
self assert: (queries includes: #getColor).<br>
self assert: self widgetColor = self getColor.!<br>
<br>
----- Method: ToolBuilderTests>>testGetInputFieldSelection (in category 'tests-input') -----<br>
testGetInputFieldSelection<br>
self makeInputField.<br>
queries := IdentitySet new.<br>
self changed: #getTextSelection.<br>
self assert: (queries includes: #getTextSelection).!<br>
<br>
----- Method: ToolBuilderTests>>testGetInputFieldSideEffectFree (in category 'tests-input') -----<br>
testGetInputFieldSideEffectFree<br>
self makeInputField.<br>
queries := IdentitySet new.<br>
self changed: #testSignalWithNoDiscernableEffect.<br>
self assert: queries isEmpty.!<br>
<br>
----- Method: ToolBuilderTests>>testGetInputFieldText (in category 'tests-input') -----<br>
testGetInputFieldText<br>
self makeInputField.<br>
queries := IdentitySet new.<br>
self changed: #getText.<br>
self assert: (queries includes: #getText).!<br>
<br>
----- Method: ToolBuilderTests>>testGetItemListSideEffectFree (in category 'tests-lists') -----<br>
testGetItemListSideEffectFree<br>
self makeItemList.<br>
queries := IdentitySet new.<br>
self changed: #testSignalWithNoDiscernableEffect.<br>
self assert: queries isEmpty.!<br>
<br>
----- Method: ToolBuilderTests>>testGetList (in category 'tests-lists') -----<br>
testGetList<br>
self makeList.<br>
queries := IdentitySet new.<br>
self changed: #getList.<br>
self assert: (queries includes: #getList).!<br>
<br>
----- Method: ToolBuilderTests>>testGetListIndex (in category 'tests-lists') -----<br>
testGetListIndex<br>
self makeList.<br>
queries := IdentitySet new.<br>
self changed: #getListIndex.<br>
self assert: (queries includes: #getListIndex).!<br>
<br>
----- Method: ToolBuilderTests>>testGetListSelection (in category 'tests-lists') -----<br>
testGetListSelection<br>
self makeItemList.<br>
queries := IdentitySet new.<br>
self changed: #getListSelection.<br>
self assert: (queries includes: #getListSelection).!<br>
<br>
----- Method: ToolBuilderTests>>testGetListSideEffectFree (in category 'tests-lists') -----<br>
testGetListSideEffectFree<br>
self makeList.<br>
queries := IdentitySet new.<br>
self changed: #testSignalWithNoDiscernableEffect.<br>
self assert: queries isEmpty.!<br>
<br>
----- Method: ToolBuilderTests>>testGetPanelChildren (in category 'tests-panel') -----<br>
testGetPanelChildren<br>
self makePanel.<br>
queries := IdentitySet new.<br>
self changed: #getChildren.<br>
self assert: (queries includes: #getChildren).!<br>
<br>
----- Method: ToolBuilderTests>>testGetPanelSideEffectFree (in category 'tests-panel') -----<br>
testGetPanelSideEffectFree<br>
self makePanel.<br>
queries := IdentitySet new.<br>
self changed: #testSignalWithNoDiscernableEffect.<br>
self assert: queries isEmpty.!<br>
<br>
----- Method: ToolBuilderTests>>testGetText (in category 'tests-text') -----<br>
testGetText<br>
self makeText.<br>
queries := IdentitySet new.<br>
self changed: #getText.<br>
self assert: (queries includes: #getText).!<br>
<br>
----- Method: ToolBuilderTests>>testGetTextColor (in category 'tests-text') -----<br>
testGetTextColor<br>
self makeText.<br>
queries := IdentitySet new.<br>
self changed: #getColor.<br>
self assert: (queries includes: #getColor).<br>
self assert: self widgetColor = self getColor.!<br>
<br>
----- Method: ToolBuilderTests>>testGetTextSelection (in category 'tests-text') -----<br>
testGetTextSelection<br>
self makeText.<br>
queries := IdentitySet new.<br>
self changed: #getTextSelection.<br>
self assert: (queries includes: #getTextSelection).!<br>
<br>
----- Method: ToolBuilderTests>>testGetTextSideEffectFree (in category 'tests-text') -----<br>
testGetTextSideEffectFree<br>
self makeText.<br>
queries := IdentitySet new.<br>
self changed: #testSignalWithNoDiscernableEffect.<br>
self assert: queries isEmpty.!<br>
<br>
----- Method: ToolBuilderTests>>testGetWindowChildren (in category 'tests-window') -----<br>
testGetWindowChildren<br>
self makeWindow.<br>
queries := IdentitySet new.<br>
self changed: #getChildren.<br>
self assert: (queries includes: #getChildren).!<br>
<br>
----- Method: ToolBuilderTests>>testGetWindowLabel (in category 'tests-window') -----<br>
testGetWindowLabel<br>
self makeWindow.<br>
queries := IdentitySet new.<br>
self changed: #getLabel.<br>
self assert: (queries includes: #getLabel).!<br>
<br>
----- Method: ToolBuilderTests>>testGetWindowSideEffectFree (in category 'tests-window') -----<br>
testGetWindowSideEffectFree<br>
self makeWindow.<br>
queries := IdentitySet new.<br>
self changed: #testSignalWithNoDiscernableEffect.<br>
self assert: queries isEmpty.!<br>
<br>
----- Method: ToolBuilderTests>>testInputWidgetID (in category 'tests-input') -----<br>
testInputWidgetID<br>
self makeInputField.<br>
self assert: (builder widgetAt: #input) == widget.!<br>
<br>
----- Method: ToolBuilderTests>>testItemListWidgetID (in category 'tests-lists') -----<br>
testItemListWidgetID<br>
self makeItemList.<br>
self assert: (builder widgetAt: #list) == widget.!<br>
<br>
----- Method: ToolBuilderTests>>testListWidgetID (in category 'tests-lists') -----<br>
testListWidgetID<br>
self makeList.<br>
self assert: (builder widgetAt: #list) == widget.!<br>
<br>
----- Method: ToolBuilderTests>>testPanelWidgetID (in category 'tests-panel') -----<br>
testPanelWidgetID<br>
self makePanel.<br>
self assert: (builder widgetAt: #panel) == widget.!<br>
<br>
----- Method: ToolBuilderTests>>testSetInputField (in category 'tests-input') -----<br>
testSetInputField<br>
self makeInputField.<br>
queries := IdentitySet new.<br>
self acceptWidgetText.<br>
self assert: (queries includes: #setText).!<br>
<br>
----- Method: ToolBuilderTests>>testSetListIndex (in category 'tests-lists') -----<br>
testSetListIndex<br>
self makeList.<br>
queries := IdentitySet new.<br>
self changeListWidget.<br>
self assert: (queries includes: #setListIndex).!<br>
<br>
----- Method: ToolBuilderTests>>testSetListSelection (in category 'tests-lists') -----<br>
testSetListSelection<br>
self makeItemList.<br>
queries := IdentitySet new.<br>
self changeListWidget.<br>
self assert: (queries includes: #setListSelection).!<br>
<br>
----- Method: ToolBuilderTests>>testSetText (in category 'tests-text') -----<br>
testSetText<br>
self makeText.<br>
queries := IdentitySet new.<br>
self acceptWidgetText.<br>
self assert: (queries includes: #setText).!<br>
<br>
----- Method: ToolBuilderTests>>testTextWidgetID (in category 'tests-text') -----<br>
testTextWidgetID<br>
self makeText.<br>
self assert: (builder widgetAt: #text) == widget!<br>
<br>
----- Method: ToolBuilderTests>>testTreeExpandPath (in category 'tests-trees') -----<br>
testTreeExpandPath<br>
"@@@@: REMOVE THIS - it's a hack (changed: #openPath)"<br>
self makeTree.<br>
queries := IdentitySet new.<br>
self changed: {#openPath. '4'. '2'. '3'}.<br>
self waitTick.<br>
self assert: (queries includes: #getChildrenOf).<br>
self assert: (queries includes: #setTreeSelection).<br>
self assert: (queries includes: #getLabelOf).<br>
!<br>
<br>
----- Method: ToolBuilderTests>>testTreeExpandPathFirst (in category 'tests-trees') -----<br>
testTreeExpandPathFirst<br>
"@@@@: REMOVE THIS - it's a hack (changed: #openPath)"<br>
self makeTree.<br>
queries := IdentitySet new.<br>
self changed: {#openPath. '1'. '2'. '2'}.<br>
self waitTick.<br>
self assert: (queries includes: #getChildrenOf).<br>
self assert: (queries includes: #setTreeSelection).<br>
self assert: (queries includes: #getLabelOf).<br>
!<br>
<br>
----- Method: ToolBuilderTests>>testTreeGetSelectionPath (in category 'tests-trees') -----<br>
testTreeGetSelectionPath<br>
self makeTree.<br>
queries := IdentitySet new.<br>
self changed: #getTreeSelectionPath.<br>
self waitTick.<br>
self assert: (queries includes: #getTreeSelectionPath).<br>
self assert: (queries includes: #getChildrenOf).<br>
self assert: (queries includes: #setTreeSelection).<br>
!<br>
<br>
----- Method: ToolBuilderTests>>testTreeRoots (in category 'tests-trees') -----<br>
testTreeRoots<br>
self makeTree.<br>
queries := IdentitySet new.<br>
self changed: #getRoots.<br>
self assert: (queries includes: #getRoots).!<br>
<br>
----- Method: ToolBuilderTests>>testTreeWidgetID (in category 'tests-trees') -----<br>
testTreeWidgetID<br>
self makeTree.<br>
self assert: (builder widgetAt: #tree) == widget.!<br>
<br>
----- Method: ToolBuilderTests>>testWindowCloseAction (in category 'tests-window') -----<br>
testWindowCloseAction<br>
self openWindow.<br>
builder close: widget.<br>
self assert: (queries includes: #noteWindowClosed).!<br>
<br>
----- Method: ToolBuilderTests>>testWindowID (in category 'tests-window') -----<br>
testWindowID<br>
self makeWindow.<br>
self assert: (builder widgetAt: #window) == widget.!<br>
<br>
----- Method: ToolBuilderTests>>waitTick (in category 'support') -----<br>
waitTick<br>
^nil!<br>
<br>
----- Method: ToolBuilderTests>>widgetColor (in category 'support') -----<br>
widgetColor<br>
"Answer color from widget"<br>
self subclassResponsibility<br>
<br>
"NOTE: You can bail out if you don't know how to get the color from the widget:<br>
^self getColor<br>
will work."!<br>
<br>
<br>
</blockquote></div><br></div>