class TC_Submit < Test::Unit::TestCase include P4RubyTest def test_submit assert( p4.connect, "Failed to connect to Perforce server" ) assert( p4.run_opened.length == 0, "Shouldn't have any open files" ) assert( p4.run_edit( "test_add_files/..." ).length == 3, "Unexpected number of open files" ) change = p4.fetch_change assert( change.kind_of?( P4::Spec ), "Change form is not a spec" ) change._description = "Add some test files\n" assert( change._description == "Add some test files\n", "Change description not set properly" ) assert_submit( "Failed to submit change", change ) # Reopen the files for edit and submit them assert( p4.run_edit( "test_add_files/..." ).length == 3, "Unexpected number of open files" ) assert_submit( "Failed to submit edits", "-d", "Edit the files", "-r" ) # Reopen them again, and use a combination of a spec object and # flags to submit. assert( p4.run_edit( "test_add_files/..." ).length == 3, "Unexpected number of open files" ) change = p4.fetch_change change._description = "Edut the test files again\n" assert_submit( "Failed to submit edits", "-r", change ) assert( p4.run_opened.length == 3, "Unexpected number of open files" ) # Leave the changelists empty p4.run_revert( "//..." ) end # # Local method to help ensure submits are working # def assert_submit( msg, *args ) assert_block( msg ) do begin result = @p4.run_submit( args ) if( result[-1].has_key?( 'submittedChange' ) ) true else false end rescue P4Exception false end end end end