Feature: Rake tasks are available to build and deploy Cocoa apps with Sparkle In order to reduce time and cost of deploying Sparkle-enabled Cocoa apps As a Cocoa developer or Cocoa application deployer I want rake tasks to build and deploy my Cocoa app Scenario: rake task to build Release of app Given a Cocoa app with choctop installed When task 'rake build' is invoked Then folder 'build/Release/SampleApp.app' is created Scenario: rake task to create dmg file of build Given an unbuilt Cocoa app with choctop installed And task 'rake build' is invoked When task 'rake dmg' is invoked Then file 'appcast/build/SampleApp-0.1.0.dmg' is created Scenario: rake task to create/update the appcast file Given a Cocoa app with choctop installed When task 'rake feed' is invoked Then file 'appcast/build/linker_appcast.xml' is created And contents of file 'appcast/build/linker_appcast.xml' does match // And contents of file 'appcast/build/linker_appcast.xml' does match // And contents of file 'appcast/build/linker_appcast.xml' does match // And contents of file 'appcast/build/linker_appcast.xml' does match // And contents of file 'appcast/build/linker_appcast.xml' does match /SampleApp 0.1.0/ And file 'appcast/build/index.php' is created And contents of file 'appcast/build/index.php' does match /Location/ And contents of file 'appcast/build/index.php' does match /SampleApp-0.1.0.dmg/ Scenario: rake task to upload the appcast file to the server Given a Cocoa app with choctop installed And task 'rake feed' is invoked And ChocTop config is configured for local rsync When task 'rake upload' is invoked Then remote file 'linker_appcast.xml' is created Then remote file 'SampleApp-0.1.0.dmg' is created Then remote file 'index.php' is created Scenario: change the version number in the Info.plist Given a Cocoa app with choctop installed When task 'rake version:set VERSION="1.2.3"' is invoked Then current xcode project version is '1.2.3'