Robert Krahn uploaded a new version of MorphicTests to project The Inbox:
http://source.squeak.org/inbox/MorphicTests-rkrk.11.mcz ==================== Summary ==================== Name: MorphicTests-rkrk.11 Author: rkrk Time: 24 September 2009, 3:39:36 am UUID: 7168c8d1-f45b-4968-bbd1-677b6783b81b Ancestors: MorphicTests-ar.10 Tests for FormCanvas>>frameAndFillRoundRect:radius:fillStyle:borderWidth:borderColor:. It raises errors in degenerate cases when fillStyle is more than a Color (e.g. a GradientFillStyle). ==================== Snapshot ==================== SystemOrganization addCategory: #'MorphicTests-Basic'! SystemOrganization addCategory: #'MorphicTests-Kernel'! SystemOrganization addCategory: #'MorphicTests-Text Support'! SystemOrganization addCategory: #'MorphicTests-Widgets'! SystemOrganization addCategory: #'MorphicTests-Support'! SystemOrganization addCategory: #'MorphicTests-Worlds'! HashAndEqualsTestCase subclass: #TextAnchorTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Text Support'! ----- Method: TextAnchorTest>>setUp (in category 'initialize-release') ----- setUp super setUp. prototypes add: (TextAnchor new anchoredMorph: RectangleMorph new initialize); add: (TextAnchor new anchoredMorph: EllipseMorph new initialize) ! HashAndEqualsTestCase subclass: #TextLineTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Text Support'! ----- Method: TextLineTest>>setUp (in category 'initialize-release') ----- setUp super setUp. prototypes add: (TextLine start: 1 stop: 50 internalSpaces: 2 paddingWidth: 1) ! Morph subclass: #TestInWorldMorph instanceVariableNames: 'intoWorldCount outOfWorldCount' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Kernel'! !TestInWorldMorph commentStamp: 'sd 6/5/2005 10:25' prior: 0! Helper class for MorphTest! ----- Method: TestInWorldMorph>>initialize (in category 'as yet unclassified') ----- initialize super initialize. outOfWorldCount := intoWorldCount := 0.! ----- Method: TestInWorldMorph>>intoWorld: (in category 'as yet unclassified') ----- intoWorld: aWorld aWorld ifNil:[^self]. super intoWorld: aWorld. intoWorldCount := intoWorldCount + 1. ! ----- Method: TestInWorldMorph>>intoWorldCount (in category 'as yet unclassified') ----- intoWorldCount ^intoWorldCount! ----- Method: TestInWorldMorph>>outOfWorld: (in category 'as yet unclassified') ----- outOfWorld: aWorld aWorld ifNil:[^self]. super outOfWorld: aWorld. outOfWorldCount := outOfWorldCount + 1. ! ----- Method: TestInWorldMorph>>outOfWorldCount (in category 'as yet unclassified') ----- outOfWorldCount ^outOfWorldCount! TestCase subclass: #BalloonFontTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Widgets'! ----- Method: BalloonFontTest>>testDefaultFont (in category 'tests') ----- testDefaultFont "(self selector: #testDefaultFont) debug" self assert: RectangleMorph new balloonFont = BalloonMorph balloonFont. self assert: RectangleMorph new defaultBalloonFont = BalloonMorph balloonFont.! ----- Method: BalloonFontTest>>testSpecificFont (in category 'tests') ----- testSpecificFont "(self selector: #testSpecificFont) debug" | aMorph | aMorph := RectangleMorph new. self assert: RectangleMorph new balloonFont = BalloonMorph balloonFont. self assert: RectangleMorph new defaultBalloonFont = BalloonMorph balloonFont. aMorph balloonFont: (StrikeFont familyName: #ComicPlain size: 19). self assert: aMorph balloonFont = (StrikeFont familyName: #ComicPlain size: 19). "The next test is horrible because I do no know how to access the font with the appropiate interface" self assert: (((BalloonMorph getTextMorph: 'lulu' for: aMorph) text runs at: 1) at: 1) font = (StrikeFont familyName: #ComicPlain size: 19)! TestCase subclass: #FormCanvasTest instanceVariableNames: 'morph' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Support'! ----- Method: FormCanvasTest>>testFrameAndFillDegenerateRoundRect01 (in category 'tests') ----- testFrameAndFillDegenerateRoundRect01 | fill canvas smallRect | fill := GradientFillStyle sample. canvas := FormCanvas extent: 100@100. canvas fillColor: Color black. smallRect := 0@0 corner: 20@20. self shouldnt: [ canvas frameAndFillRoundRect: smallRect radius: smallRect width / 2 + 1 fillStyle: fill borderWidth: 0 borderColor: Color lightGray] raise: Error.! ----- Method: FormCanvasTest>>testFrameAndFillDegenerateRoundRect02 (in category 'tests') ----- testFrameAndFillDegenerateRoundRect02 | fill canvas smallRect | fill := GradientFillStyle sample. canvas := FormCanvas extent: 100@100. canvas fillColor: Color black. smallRect := 0@0 corner: 20@20. self shouldnt: [ canvas frameAndFillRoundRect: smallRect radius: 0 fillStyle: fill borderWidth: 0 borderColor: Color lightGray] raise: Error.! TestCase subclass: #MCPTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Kernel'! ----- Method: MCPTest>>defaultBounds (in category 'constants') ----- defaultBounds "the default bounds for morphs" ^ 0 @ 0 corner: 50 @ 40 ! ----- Method: MCPTest>>defaultTop (in category 'constants') ----- defaultTop "the default top for morphs" ^ self defaultBounds top ! ----- Method: MCPTest>>testIsMorphicModel (in category 'tests') ----- testIsMorphicModel "test isMorphicModel" self deny: Object new isMorphicModel. self deny: Morph new isMorphicModel. self assert: MorphicModel new isMorphicModel. ! ----- Method: MCPTest>>testIsSystemWindow (in category 'tests') ----- testIsSystemWindow "test isSystemWindow" self deny: Object new isSystemWindow. self assert: SystemWindow new isSystemWindow.! ----- Method: MCPTest>>testTop (in category 'tests') ----- testTop "test the #top: messages and its consequences" | morph factor newTop newBounds | morph := Morph new. "" factor := 10. newTop := self defaultTop + factor. newBounds := self defaultBounds translateBy: 0 @ factor. "" morph top: newTop. "" self assert: morph top = newTop; assert: morph bounds = newBounds! TestCase subclass: #MorphTest instanceVariableNames: 'morph world' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Kernel'! !MorphTest commentStamp: '<historical>' prior: 0! This is the unit test for the class Morph. Unit tests are a good way to exercise the functionality of your system in a repeatable and automatic manner. They are therefore recommended if you plan to release anything. For more information, see: - http://www.c2.com/cgi/wiki?UnitTest - http://minnow.cc.gatech.edu/squeak/1547 - the sunit class category! MorphTest subclass: #CircleMorphTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Basic'! !CircleMorphTest commentStamp: 'tlk 5/21/2006 14:16' prior: 0! A CircleMorphTest is a subclass of MorphTest. It was first implemented when removing some unused and broken functionality. My fixtures are morph, a CircleMorph and world. ! ----- Method: CircleMorphTest>>setUp (in category 'initialize-release') ----- setUp morph := CircleMorph new! ----- Method: MorphTest>>getWorld (in category 'initialize-release') ----- getWorld ^ world ifNil: [world := MorphicProject new world]! ----- Method: MorphTest>>setUp (in category 'initialize-release') ----- setUp morph := Morph new! ----- Method: MorphTest>>tearDown (in category 'initialize-release') ----- tearDown morph delete. world ifNotNil: [Project deletingProject: world project]! ----- Method: MorphTest>>testIntoWorldCollapseOutOfWorld (in category 'testing - into/outOf World') ----- testIntoWorldCollapseOutOfWorld | m1 m2 collapsed | "Create the guys" m1 := TestInWorldMorph new. m2 := TestInWorldMorph new. self assert: (m1 intoWorldCount = 0). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 0). self assert: (m2 outOfWorldCount = 0). "add them to basic morph" morph addMorphFront: m1. m1 addMorphFront: m2. self assert: (m1 intoWorldCount = 0). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 0). self assert: (m2 outOfWorldCount = 0). "open the guy" morph openInWorld. self assert: (m1 intoWorldCount = 1). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 1). self assert: (m2 outOfWorldCount = 0). "collapse it" collapsed := CollapsedMorph new beReplacementFor: morph. self assert: (m1 intoWorldCount = 1). self assert: (m1 outOfWorldCount = 1). self assert: (m2 intoWorldCount = 1). self assert: (m2 outOfWorldCount = 1). "expand it" collapsed collapseOrExpand. self assert: (m1 intoWorldCount = 2). self assert: (m1 outOfWorldCount = 1). self assert: (m2 intoWorldCount = 2). self assert: (m2 outOfWorldCount = 1). "delete it" morph delete. self assert: (m1 intoWorldCount = 2). self assert: (m1 outOfWorldCount = 2). self assert: (m2 intoWorldCount = 2). self assert: (m2 outOfWorldCount = 2). ! ----- Method: MorphTest>>testIntoWorldDeleteOutOfWorld (in category 'testing - into/outOf World') ----- testIntoWorldDeleteOutOfWorld | m1 m2 | "Create the guys" m1 := TestInWorldMorph new. m2 := TestInWorldMorph new. self assert: (m1 intoWorldCount = 0). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 0). self assert: (m2 outOfWorldCount = 0). morph addMorphFront: m1. m1 addMorphFront: m2. self assert: (m1 intoWorldCount = 0). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 0). self assert: (m2 outOfWorldCount = 0). morph openInWorld. self assert: (m1 intoWorldCount = 1). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 1). self assert: (m2 outOfWorldCount = 0). morph delete. self assert: (m1 intoWorldCount = 1). self assert: (m1 outOfWorldCount = 1). self assert: (m2 intoWorldCount = 1). self assert: (m2 outOfWorldCount = 1). ! ----- Method: MorphTest>>testIntoWorldTransferToNewGuy (in category 'testing - into/outOf World') ----- testIntoWorldTransferToNewGuy | m1 m2 | "Create the guys" m1 := TestInWorldMorph new. m2 := TestInWorldMorph new. self assert: (m1 intoWorldCount = 0). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 0). self assert: (m2 outOfWorldCount = 0). morph addMorphFront: m1. m1 addMorphFront: m2. self assert: (m1 intoWorldCount = 0). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 0). self assert: (m2 outOfWorldCount = 0). morph openInWorld. self assert: (m1 intoWorldCount = 1). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 1). self assert: (m2 outOfWorldCount = 0). morph addMorphFront: m2. self assert: (m1 intoWorldCount = 1). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 1). self assert: (m2 outOfWorldCount = 0). morph addMorphFront: m1. self assert: (m1 intoWorldCount = 1). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 1). self assert: (m2 outOfWorldCount = 0). m2 addMorphFront: m1. self assert: (m1 intoWorldCount = 1). self assert: (m1 outOfWorldCount = 0). self assert: (m2 intoWorldCount = 1). self assert: (m2 outOfWorldCount = 0). morph delete. self assert: (m1 intoWorldCount = 1). self assert: (m1 outOfWorldCount = 1). self assert: (m2 intoWorldCount = 1). self assert: (m2 outOfWorldCount = 1). ! ----- Method: MorphTest>>testIsMorph (in category 'testing - classification') ----- testIsMorph self assert: (morph isMorph).! ----- Method: MorphTest>>testOpenInWorld (in category 'testing - initialization') ----- testOpenInWorld self shouldnt: [morph openInWorld] raise: Error.! ----- Method: MorphTest>>testOverlapAny (in category 'testing - etoys') ----- testOverlapAny "self debug: #testOverlapAny" | p1 p2 | p1 := Morph new assuredPlayer. p2 := EllipseMorph new assuredPlayer. "Same position" p1 costume position: 0@0. p2 costume position: 0@0. self assert: (p1 overlapsAny: p2). "Different position" p1 costume position: 0@0. p2 costume position: 500@0. self assert: (p1 overlapsAny: p2) not.! ----- Method: MorphTest>>testOverlapAnyDeletedPlayer (in category 'testing - etoys') ----- testOverlapAnyDeletedPlayer "self debug: #testOverlapAnyDeletedPlayer" | me friend sibling | me := Morph new assuredPlayer assureUniClass; yourself. friend := EllipseMorph new assuredPlayer assureUniClass; yourself. sibling := friend getNewClone. sibling costume delete. self getWorld addMorph: me costume. "Same position but deleted" me costume position: 0 @ 0. friend costume position: 0 @ 0. sibling costume position: 0 @ 0. self assert: (me overlapsAny: friend) not. self assert: (me overlapsAny: sibling) not! ----- Method: MorphTest>>testOverlapAnyScriptedPlayer (in category 'testing - etoys') ----- testOverlapAnyScriptedPlayer "self debug: #testOverlapAnyScriptedPlayer" | me friend other sibling | me := Morph new assuredPlayer assureUniClass; yourself. friend := EllipseMorph new assuredPlayer assureUniClass; yourself. sibling := friend getNewClone. other := EllipseMorph new assuredPlayer assureUniClass; yourself. self getWorld addMorph: me costume; addMorph: friend costume; addMorph: other costume; addMorph: sibling costume. "myself" self assert: (me overlapsAny: me) not. "Same position with sibling" me costume position: 0 @ 0. friend costume position: 500 @ 0. other costume position: 500 @ 0. sibling costume position: 0@0. self assert: (me overlapsAny: friend). "Different position with sibling but same class" me costume position: 0 @ 0. friend costume position: 500 @ 0. sibling costume position: 500@ 0. other costume position: 0 @ 0. self assert: (me overlapsAny: friend) not! ----- Method: MorphTest>>testOverlapAnyUnscriptedPlayer (in category 'testing - etoys') ----- testOverlapAnyUnscriptedPlayer "self debug: #testOverlapAnyUnscriptedPlayer" | p1 p2 p3 | p1 := Morph new assuredPlayer. p2 := EllipseMorph new assuredPlayer. p3 := EllipseMorph new assuredPlayer. self getWorld addMorph: p1 costume; addMorph: p2 costume; addMorph: p3 costume. "Same class, same position" p1 costume position: 0 @ 0. p2 costume position: 500 @ 0. p3 costume position: 0 @ 0. self assert: (p1 overlapsAny: p2). "Same class, different position" p1 costume position: 0 @ 0. p2 costume position: 1000 @ 0. p3 costume position: 500 @ 0. self assert: (p1 overlapsAny: p2) not. ! TestCase subclass: #TileMorphTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Basic'! ----- Method: TileMorphTest>>testArrowAction (in category 'testing') ----- testArrowAction "self debug: #testArrowAction" | dummy tile | dummy := Morph new. tile := TileMorph new setOperator: '+'. dummy addMorph: tile. tile arrowAction: 1. self assert: tile codeString = '-'. tile := TileMorph new setOperator: '<'. dummy addMorph: tile. tile arrowAction: 1. "Because receiver is not tile" self assert: tile codeString = '='. tile := true newTileMorphRepresentative. dummy addMorph: tile. tile arrowAction: 1. self assert: tile codeString = '(false)'. ! ----- Method: TileMorphTest>>testAssignmentTile (in category 'testing') ----- testAssignmentTile "self debug: #testAssignmentTile" | player viewer tile phrase | player := Morph new assuredPlayer. viewer := CategoryViewer new invisiblySetPlayer: player. viewer makeSetter: #(#getX #Number) event: nil from: player costume. phrase := ActiveHand firstSubmorph. ActiveHand removeAllMorphs. tile := phrase submorphs second. self assert: tile codeString = 'setX: '. tile arrowAction: 1. self assert: tile codeString = 'setX: self getX + '. ! ----- Method: TileMorphTest>>testSoundTile (in category 'testing') ----- testSoundTile "self debug: #testSoundTile" | tile dummy | dummy := Morph new. tile := SoundTile new literal: 'croak'. dummy addMorph: tile. tile arrowAction: 1. self assert: tile codeString = '(''horn'')'. ! ClassTestCase subclass: #PasteUpMorphTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Worlds'! !PasteUpMorphTest commentStamp: '<historical>' prior: 0! I am a TestCase for PasteUpMorph.! ----- Method: PasteUpMorphTest>>testCursorWrapped (in category 'tests') ----- testCursorWrapped "self debug: #testCursorWrapped" | holder | holder := PasteUpMorph new. self assert: holder cursor = 1. holder cursorWrapped: 2. self assert: holder cursor = 1. holder addMorph: Morph new; addMorph: Morph new; addMorph: Morph new. holder cursorWrapped: 3. self assert: holder cursor = 3. holder cursorWrapped: 5. self assert: holder cursor = 2. holder cursorWrapped: 0. self assert: holder cursor = 3. holder cursorWrapped: -1. self assert: holder cursor = 2.! ----- Method: PasteUpMorphTest>>testCursorWrappedWithFraction (in category 'tests') ----- testCursorWrappedWithFraction "self debug: #testCursorWrappedWithFraction" | holder | holder := PasteUpMorph new. holder addMorph: Morph new; addMorph: Morph new; addMorph: Morph new. holder cursorWrapped: 3.5. self assert: holder cursor = 3.5. holder cursorWrapped: 5.5. self assert: holder cursor = 2.5. holder cursorWrapped: 0.5. self assert: holder cursor = 3.5. holder cursorWrapped: -0.5. self assert: holder cursor = 2.5.! ----- Method: PasteUpMorphTest>>testGridToGradient (in category 'tests') ----- testGridToGradient "A trivial test for checking that you can change from a grid to a gradient background. A recent [FIX] will make this pass." | pum | pum := PasteUpMorph new. pum setStandardTexture. "The following should fail without the fix" self shouldnt: [pum gradientFillColor: Color red] raise: MessageNotUnderstood! ----- Method: PasteUpMorphTest>>testPlayWithMe1Romoval (in category 'tests') ----- testPlayWithMe1Romoval "A trivial test for checking that PlayWithMe classes are all removed" self deny: ( Smalltalk hasClassNamed: 'PlayWithMe1' ) .! ClassTestCase subclass: #SimpleSwitchMorphTest instanceVariableNames: 'testSwitch' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Widgets'! !SimpleSwitchMorphTest commentStamp: '<historical>' prior: 0! I test the behavior of SimpleSwitchMorph! ----- Method: SimpleSwitchMorphTest>>classToBeTested (in category 'as yet unclassified') ----- classToBeTested ^ SimpleSwitchMorph ! ----- Method: SimpleSwitchMorphTest>>setUp (in category 'as yet unclassified') ----- setUp super setUp. testSwitch := SimpleSwitchMorph new! ----- Method: SimpleSwitchMorphTest>>testName (in category 'as yet unclassified') ----- testName self assert: testSwitch externalName = 'SimpleSwitch'! ----- Method: SimpleSwitchMorphTest>>testState (in category 'as yet unclassified') ----- testState self assert: testSwitch isOff. self deny: testSwitch isOn. testSwitch toggleState. self assert: testSwitch isOn. self deny: testSwitch isOff! ----- Method: SimpleSwitchMorphTest>>testSwitching (in category 'as yet unclassified') ----- testSwitching testSwitch setSwitchState: false. self assert: testSwitch isOff. self assert: testSwitch color = testSwitch offColor. testSwitch setSwitchState: true. self assert: testSwitch isOn. self assert: testSwitch color = testSwitch onColor.! ClassTestCase subclass: #TextMorphTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'MorphicTests-Basic'! ----- Method: TextMorphTest>>testInitialize (in category 'testing') ----- testInitialize "For now, just make sure initialization doesn't throw exception" self shouldnt: [TextMorph initialize] raise: Error.! |
Free forum by Nabble | Edit this page |