features/step_definitions/hudson_steps.rb in hudson-0.3.0.beta.1 vs features/step_definitions/hudson_steps.rb in hudson-0.3.0.beta.2

- old
+ new

@@ -27,10 +27,30 @@ else puts "WARNING: Run 'I have a Hudson server running' step first." end end +Given /^the Hudson server has no slaves$/ do + if port = @hudson_port + require "open-uri" + require "yajl" + base_url = "http://#{@hudson_host}:#{@hudson_port}" + hudson_info = Yajl::Parser.new.parse(open("#{base_url}/computer/api/json")) + + hudson_info['computer'].each do |node| + name = node["displayName"] + next if name == "master" + job_url = "#{base_url}/computer/#{CGI::escape(name).gsub('+', '%20')}" + res = Net::HTTP.start("localhost", port) { |http| http.post("#{job_url}/doDelete/api/json", {}) } + end + hudson_info = Yajl::Parser.new.parse(open("http://#{@hudson_host}:#{@hudson_port}/api/json")) + hudson_info['jobs'].should == [] + else + puts "WARNING: Run 'I have a Hudson server running' step first." + end +end + Given /^there is nothing listening on port (\d+)$/ do |port| lambda { TCPSocket.open("localhost", port) {} }.should raise_error end @@ -54,10 +74,10 @@ When /^I run hudson server with arguments "(.*)"/ do |arguments| @stdout = File.expand_path(File.join(@tmp_root, "executable.out")) executable = File.expand_path(File.join(File.dirname(__FILE__), "/../../bin","hudson")) in_project_folder do - system "ruby #{executable} server #{arguments} > #{@stdout} 2>#{@stdout}" + system "ruby #{executable.inspect} server #{arguments} > #{@stdout.inspect} 2> #{@stdout.inspect}" end end Then /^I should see a hudson server on port (\d+)$/ do |port|