[#4180] Show and hide the total field based on the Deliverable Type

Hooks up holygrail to do basic headless JavaScript testing.
This commit is contained in:
Eric Davis
2010-07-02 11:09:58 -07:00
parent f772343749
commit 545c2e06e5
4 changed files with 48 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
jQuery(function($) {
toggleSpecificDeliverableFields = function() {
var deliverableType = $('select#deliverable_type option:selected').val();
if (deliverableType == 'FixedDeliverable') {
$('#deliverable_total').show();
} else {
$('#deliverable_total').hide();
}
},
toggleSpecificDeliverableFields();
$('select#deliverable_type').change(function() {
toggleSpecificDeliverableFields();
});
});
+6
View File
@@ -1,5 +1,11 @@
config.gem 'formtastic', :version => '0.9.10'
if Rails.env.test?
config.gem "stackdeck"
config.gem "johnson", :version => '2.0.0.pre3'
config.gem "holygrail"
end
require 'redmine'
Redmine::Plugin.register :redmine_contracts do
@@ -57,6 +57,8 @@ class DeliverablesNewTest < ActionController::IntegrationTest
fill_in "End Date", :with => '2010-12-31'
fill_in "Notes", :with => 'Some notes on the deliverable'
fill_in "Total", :with => '1,000.00'
# TODO: webrat can't trigger DOM events so it can't appear
# assert js("jQuery('#deliverable_total').is(':visible')"), "Total is hidden when it should be visible"
click_button "Save"
@@ -89,6 +91,9 @@ class DeliverablesNewTest < ActionController::IntegrationTest
fill_in "End Date", :with => '2010-12-31'
fill_in "Notes", :with => 'Some notes on the deliverable'
assert js("jQuery('#deliverable_total').is(':hidden')"),
"Total is visible when it should be hidden"
click_button "Save"
assert_response :success
+20
View File
@@ -10,6 +10,26 @@ Webrat.configure do |config|
config.mode = :rails
end
require 'holygrail'
module HolyGrail
module Extensions
# Need to rewrite the javascript for the engine too
def rewrite_script_paths(body)
body.
gsub(%r%src=("|')/?plugin_assets/redmine_contracts/javascripts/(.*)("|')%) { %|src=#{$1}%s#{$1}"| % Rails.root.join("vendor/plugins/redmine_contracts/assets/javascripts/#{$2}") }.
gsub(%r%src=("|')/?javascripts/(.*)("|')%) { %|src=#{$1}%s#{$1}"| % Rails.root.join("public/javascripts/#{$2}") }
end
end
end
class ActionController::TestCase
include HolyGrail::Extensions
end
class ActionController::IntegrationTest
include HolyGrail::Extensions
end
def User.add_to_project(user, project, role)
Member.generate!(:principal => user, :project => project, :roles => [role])
end