# HG changeset patch # User fm # Date 1253724612 -7200 # Node ID f7de72d8b7c7289878e1cf3ddbed64a075c438f1 # Parent f1792c263b24932f6eddf6122a2b6f542c3f96c6 initial checkin diff -r f1792c263b24 -r f7de72d8b7c7 SVN__CommitTests.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SVN__CommitTests.st Wed Sep 23 18:50:12 2009 +0200 @@ -0,0 +1,296 @@ +"{ Package: 'cvut:stx/goodies/libsvn' }" + +"{ NameSpace: SVN }" + +TestCase subclass:#CommitTests + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + category:'SVN-Tests' +! + +!CommitTests class methodsFor:'documentation'! + +version_SVN + ^'$Id$' +! ! + +!CommitTests methodsFor:'initialization & release'! + +setUp + + super setUp. + Class withoutUpdatingChangesDo: + [self source_stx_goodies_libsvn_CommitTests_st readStream fileIn. + self source_SVN__CommitTestsMockA_st readStream fileIn. + self source_SVN__CommitTestsMockB_st readStream fileIn] + + "Created: / 19-08-2009 / 14:59:20 / Jan Vrany " +! ! + +!CommitTests methodsFor:'sources'! + +source_SVN__CommitTestsMockA_st + + " + SVN::CommitTestsMockA fileOutAsMethodIn: SVN::CommitTests selector: #'source_SVN__CommitTestsMockA_st' category: 'sources' + + SVN::CommitTests new source_SVN__CommitTestsMockA_st + " + +^'''From Smalltalk/X, Version:5.4.4 on 08-04-2009 at 09:23:01 PM'' !! + +"{ Package: ''stx:goodies/libsvn_CommitTests'' }" + +"{ NameSpace: SVN }" + +Object subclass:#CommitTestsMockA + instanceVariableNames:'''' + classVariableNames:'''' + poolDictionaries:'''' + category:''SVN-Tests-Mocks'' +!! + +' + + "Modified: / 19-08-2009 / 13:33:52 / Jan Vrany " +! + +source_SVN__CommitTestsMockB_st + + " + SVN::CommitTestsMockA fileOutAsMethodIn: SVN::CommitTests selector: #'source_SVN__CommitTestsMockA_st' category: 'sources' + + SVN::CommitTests new source_SVN__CommitTestsMockA_st + " + +^'"{ Package: ''stx:goodies/libsvn_CommitTests'' }" + +"{ NameSpace: SVN }" + +Object subclass:#CommitTestsMockB + instanceVariableNames:'''' + classVariableNames:'''' + poolDictionaries:'''' + category:''SVN-Tests-Mocks'' +!! + +' + + "Created: / 09-04-2009 / 17:41:32 / Jan Vrany " + "Modified: / 19-08-2009 / 13:33:57 / Jan Vrany " +! + +source_stx_goodies_libsvn_CommitTests_st + + " + stx_goodies_libsvnCommitTests fileOutAsMethodIn: SVN::CommitTests selector: #'source_stx_goodies_libsvnCommitTests_st' category: 'sources' + + SVN::CommitTests new source_stx_goodies_libsvnCommitTests_st + " + +^'''From Smalltalk/X, Version:5.4.4 on 08-04-2009 at 09:23:54 PM'' !! + +"{ Package: ''stx:goodies/libsvn_CommitTests'' }" + +LibraryDefinition subclass:#stx_goodies_libsvn_CommitTests + instanceVariableNames:'''' + classVariableNames:'''' + poolDictionaries:'''' + category:''* Projects & Packages *'' +!! + +!!stx_goodies_libsvn_CommitTests class methodsFor:''description''!! + +preRequisites + ^ #( + #''stx:libbasic'' "LibraryDefinition - superclass of stx_goodies_libsvnCommitTests " + ) +!! !! + +!!stx_goodies_libsvn_CommitTests class methodsFor:''description - contents''!! + +classNamesAndAttributes + ^ #( + " or ( attributes...) in load order" + #''SVN::CommitTestsMockA'' + #''SVN::CommitTestsMockB'' + #''stx_goodies_libsvn_CommitTests'' + ) +!! + +extensionMethodNames + ^ #( + ) +!! !! + +!!stx_goodies_libsvn_CommitTests class methodsFor:''description - project information''!! + +applicationIconFileName + "Return the name (without suffix) of an icon-file (the app''s icon); will be included in the rc-resource file" + + ^ nil + "/ ^ self applicationName +!! + +companyName + "Return a companyname which will appear in .rc" + + ^ ''eXept Software AG'' +!! + +description + "Return a description string which will appear in vc.def / bc.def" + + ^ ''Smalltalk/X Class library'' +!! + +legalCopyright + "Return a copyright string which will appear in .rc" + + ^ ''Copyright Claus Gittinger 1988-2009\nCopyright eXept Software AG 1998-2009'' +!! + +productName + "Return a product name which will appear in .rc" + + ^ ''Smalltalk/X'' +!! !! + +' + + "Created: / 19-08-2009 / 13:34:32 / Jan Vrany " +! + +sources + + ^super sources , + #( + (dir 'trunk') + (file 'trunk/SVN__CommitTestsMockA.st' source_SVN__CommitTestsMockA_st) + (file 'trunk/SVN__CommitTestsMockB.st' source_SVN__CommitTestsMockB_st) + (file 'trunk/stx_goodies_libsvn_CommitTests.st' source_stx_goodies_libsvn_CommitTests_st) + + (dir 'branches') + + (dir 'tags') + ) + + "Created: / 08-04-2009 / 21:25:37 / Jan Vrany " + "Modified: / 19-08-2009 / 13:35:05 / Jan Vrany " +! ! + +!CommitTests methodsFor:'tests'! + +test_01_simple + + " + Tests the simpliest commit + " + + Class packageQuerySignal answer: self package do: + [SVN::CommitTestsMockA compile: 'r1 ^''Revision 1''' classified: 'methods - r1']. + + wc commit:'CommitTests>>test_01 commit'. + + self assert: + (wc branch cat: 'SVN__CommitTestsMockA.st') + = (String streamContents:[:s| SVN::CommitTestsMockA fileOutOn: s withTimeStamp: false]). + + "Created: / 12-06-2009 / 21:46:04 / Jan Vrany " + "Modified: / 19-08-2009 / 14:57:46 / Jan Vrany " +! + +test_01_simple_ui + + | w repositoryCode imageCode | + + self assert:(Smalltalk at: #'SVN::CommitTestsMockA' ifAbsent:[nil]) notNil. + + Class packageQuerySignal answer: self package do: + [SVN::CommitTestsMockA compile: 'r1 ^''Revision 1''' classified: 'methods - r1']. + + + w := CommitWizard new. + w task: wc commitTask. + [ w open ] fork. + Delay waitForSeconds: 4. + self assert: w goPrevEnabledHolder value == false. + self assert: w goNextEnabledHolder value == true. + w goNext. + self assert: w goPrevEnabledHolder value == true. + self assert: w goNextEnabledHolder value == false. + w pane message: 'CommitTests>>test_01 commit'. + w doAccept. + + Delay waitForSeconds: 2. + + repositoryCode := (wc branch cat: 'SVN__CommitTestsMockA.st'). + imageCode := (String streamContents:[:s| SVN::CommitTestsMockA fileOutOn: s withTimeStamp: false]). + + self assert: (repositoryCode = imageCode). + " + DiffTextView openOn: repositoryCode and: imageCode + " + + "Created: / 12-06-2009 / 21:46:11 / Jan Vrany " + "Modified: / 19-08-2009 / 15:10:17 / Jan Vrany " +! + +test_02_selective_commit + + " + Selective class commit test + " + + self assert:(Smalltalk at: #'SVN::CommitTestsMockA' ifAbsent:[nil]) notNil. + self assert:(Smalltalk at: #'SVN::CommitTestsMockB' ifAbsent:[nil]) notNil. + + Class packageQuerySignal answer: self package do: + [SVN::CommitTestsMockA compile: 'r1 ^''Revision 1''' classified: 'methods - r1']. + + Class packageQuerySignal answer: self package do: + [SVN::CommitTestsMockB compile: 'r1 ^''Revision 1''' classified: 'methods - r1']. + + wc commitTask + classes: (Array with: SVN::CommitTestsMockA); + message: 'CommitTests>>test_03 commit'; + do. + + self assert: + (wc branch cat: 'SVN__CommitTestsMockA.st') + = (String streamContents:[:s| SVN::CommitTestsMockA fileOutOn: s withTimeStamp: false]). + + self assert: + (wc branch cat: 'SVN__CommitTestsMockB.st') + = self source_SVN__CommitTestsMockB_st. + + "Created: / 12-06-2009 / 21:46:25 / Jan Vrany " + "Modified: / 19-08-2009 / 14:57:54 / Jan Vrany " +! + +test_03_class_remove + + " + Tests class remove + " + + self assert:(Smalltalk at: #'SVN::CommitTestsMockA' ifAbsent:[nil]) notNil. + self assert:(Smalltalk at: #'SVN::CommitTestsMockB' ifAbsent:[nil]) notNil. + + Smalltalk removeClass: SVN::CommitTestsMockB. + + wc commitTask + message: 'CommitTests>>test_03 commit'; + do. + self assert: (wc branch list size = (2 + 4)"Make.spec, Make.proto, abbrev.stc, libInit.cc") + + "Created: / 12-06-2009 / 21:52:09 / Jan Vrany " + "Modified: / 19-08-2009 / 15:09:26 / Jan Vrany " +! ! + +!CommitTests class methodsFor:'documentation'! + +version + ^ '$Header$' +! !