@@ -1,6 +1,6 | |||
|
1 | 1 | source 'http://rubygems.org' |
|
2 | 2 | |
|
3 |
gem 'rails', '3.2. |
|
|
3 | gem 'rails', '3.2.8' | |
|
4 | 4 | gem "jquery-rails", "~> 2.0.2" |
|
5 | 5 | gem "i18n", "~> 0.6.0" |
|
6 | 6 | gem "coderay", "~> 1.0.6" |
@@ -1206,7 +1206,7 module ApplicationHelper | |||
|
1206 | 1206 | |
|
1207 | 1207 | # Returns the javascript tags that are included in the html layout head |
|
1208 | 1208 | def javascript_heads |
|
1209 |
tags = javascript_include_tag('jquery-1.7.2-ui-1.8.21-ujs-2.0. |
|
|
1209 | tags = javascript_include_tag('jquery-1.7.2-ui-1.8.21-ujs-2.0.3', 'application') | |
|
1210 | 1210 | unless User.current.pref.warn_on_leaving_unsaved == '0' |
|
1211 | 1211 | tags << "\n".html_safe + javascript_tag("$(window).load(function(){ warnLeavingUnsaved('#{escape_javascript l(:text_warn_on_leaving_unsaved)}'); });") |
|
1212 | 1212 | end |
@@ -2,5 +2,5 | |||
|
2 | 2 | $('#tab-content-memberships').html('<%= escape_javascript(render :partial => 'groups/memberships') %>'); |
|
3 | 3 | $('#member-<%= @membership.id %>').effect("highlight"); |
|
4 | 4 | <% else %> |
|
5 | alert('<%= escape_javascript(l(:notice_failed_to_save_members, :errors => @membership.errors.full_messages.join(', '))) %>'); | |
|
5 | alert('<%= raw(escape_javascript(l(:notice_failed_to_save_members, :errors => @membership.errors.full_messages.join(', ')))) %>'); | |
|
6 | 6 | <% end %> |
@@ -7,5 +7,5 hideOnLoad(); | |||
|
7 | 7 | <% end %> |
|
8 | 8 | <% else %> |
|
9 | 9 | <% errors = @members.collect {|m| m.errors.full_messages}.flatten.uniq.join(', ') %> |
|
10 |
alert('<%= escape_javascript |
|
|
10 | alert('<%= raw(escape_javascript(l(:notice_failed_to_save_members, :errors => errors))) %>'); | |
|
11 | 11 | <% end %> |
@@ -3,5 +3,5 | |||
|
3 | 3 | $('#related-issue-<%= @issue.id %>').effect("highlight"); |
|
4 | 4 | $('#issue_id').focus(); |
|
5 | 5 | <% else %> |
|
6 | alert("<%= escape_javascript(l(:label_issue) + ' ' + l('activerecord.errors.messages.invalid')) %>"); | |
|
6 | alert("<%= raw(escape_javascript(l(:label_issue) + ' ' + l('activerecord.errors.messages.invalid'))) %>"); | |
|
7 | 7 | <% end %> |
@@ -2,5 +2,5 | |||
|
2 | 2 | $('#tab-content-memberships').html('<%= escape_javascript(render :partial => 'users/memberships') %>'); |
|
3 | 3 | $("#member-<%= @membership.id %>").effect("highlight"); |
|
4 | 4 | <% else %> |
|
5 |
alert('<%= escape_javascript |
|
|
5 | alert('<%= raw(escape_javascript(l(:notice_failed_to_save_members, :errors => @membership.errors.full_messages.join(', ')))) %>'); | |
|
6 | 6 | <% end %> |
@@ -129,5 +129,5 jQuery.effects||function(a,b){function c(b){var c;return b&&b.constructor==Array | |||
|
129 | 129 | * Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ |
|
130 | 130 | (function(a,b){a.effects.transfer=function(b){return this.queue(function(){var c=a(this),d=a(b.options.to),e=d.offset(),f={top:e.top,left:e.left,height:d.innerHeight(),width:d.innerWidth()},g=c.offset(),h=a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.options.className).css({top:g.top,left:g.left,height:c.innerHeight(),width:c.innerWidth(),position:"absolute"}).animate(f,b.duration,b.options.easing,function(){h.remove(),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);; |
|
131 | 131 | |
|
132 |
/* JQuery UJS 2.0. |
|
|
133 |
(function(a,b){var c;a.rails= |
|
|
132 | /* JQuery UJS 2.0.3 */ | |
|
133 | (function(a,b){var c=function(){var b=a(document).data("events");return b&&b.click&&a.grep(b.click,function(a){return a.namespace==="rails"}).length};if(c()){a.error("jquery-ujs has already been loaded!")}var d;a.rails=d={linkClickSelector:"a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]",inputChangeSelector:"select[data-remote], input[data-remote], textarea[data-remote]",formSubmitSelector:"form",formInputClickSelector:"form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])",disableSelector:"input[data-disable-with], button[data-disable-with], textarea[data-disable-with]",enableSelector:"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled",requiredInputSelector:"input[name][required]:not([disabled]),textarea[name][required]:not([disabled])",fileInputSelector:"input:file",linkDisableSelector:"a[data-disable-with]",CSRFProtection:function(b){var c=a('meta[name="csrf-token"]').attr("content");if(c)b.setRequestHeader("X-CSRF-Token",c)},fire:function(b,c,d){var e=a.Event(c);b.trigger(e,d);return e.result!==false},confirm:function(a){return confirm(a)},ajax:function(b){return a.ajax(b)},href:function(a){return a.attr("href")},handleRemote:function(c){var e,f,g,h,i,j,k,l;if(d.fire(c,"ajax:before")){h=c.data("cross-domain");i=h===b?null:h;j=c.data("with-credentials")||null;k=c.data("type")||a.ajaxSettings&&a.ajaxSettings.dataType;if(c.is("form")){e=c.attr("method");f=c.attr("action");g=c.serializeArray();var m=c.data("ujs:submit-button");if(m){g.push(m);c.data("ujs:submit-button",null)}}else if(c.is(d.inputChangeSelector)){e=c.data("method");f=c.data("url");g=c.serialize();if(c.data("params"))g=g+"&"+c.data("params")}else{e=c.data("method");f=d.href(c);g=c.data("params")||null}l={type:e||"GET",data:g,dataType:k,beforeSend:function(a,e){if(e.dataType===b){a.setRequestHeader("accept","*/*;q=0.5, "+e.accepts.script)}return d.fire(c,"ajax:beforeSend",[a,e])},success:function(a,b,d){c.trigger("ajax:success",[a,b,d])},complete:function(a,b){c.trigger("ajax:complete",[a,b])},error:function(a,b,d){c.trigger("ajax:error",[a,b,d])},xhrFields:{withCredentials:j},crossDomain:i};if(f){l.url=f}var n=d.ajax(l);c.trigger("ajax:send",n);return n}else{return false}},handleMethod:function(c){var e=d.href(c),f=c.data("method"),g=c.attr("target"),h=a("meta[name=csrf-token]").attr("content"),i=a("meta[name=csrf-param]").attr("content"),j=a('<form method="post" action="'+e+'"></form>'),k='<input name="_method" value="'+f+'" type="hidden" />';if(i!==b&&h!==b){k+='<input name="'+i+'" value="'+h+'" type="hidden" />'}if(g){j.attr("target",g)}j.hide().append(k).appendTo("body");j.submit()},disableFormElements:function(b){b.find(d.disableSelector).each(function(){var b=a(this),c=b.is("button")?"html":"val";b.data("ujs:enable-with",b[c]());b[c](b.data("disable-with"));b.prop("disabled",true)})},enableFormElements:function(b){b.find(d.enableSelector).each(function(){var b=a(this),c=b.is("button")?"html":"val";if(b.data("ujs:enable-with"))b[c](b.data("ujs:enable-with"));b.prop("disabled",false)})},allowAction:function(a){var b=a.data("confirm"),c=false,e;if(!b){return true}if(d.fire(a,"confirm")){c=d.confirm(b);e=d.fire(a,"confirm:complete",[c])}return c&&e},blankInputs:function(b,c,d){var e=a(),f,g,h=c||"input,textarea";b.find(h).each(function(){f=a(this);g=f.is(":checkbox,:radio")?f.is(":checked"):f.val();if(g==!!d){e=e.add(f)}});return e.length?e:false},nonBlankInputs:function(a,b){return d.blankInputs(a,b,true)},stopEverything:function(b){a(b.target).trigger("ujs:everythingStopped");b.stopImmediatePropagation();return false},callFormSubmitBindings:function(c,d){var e=c.data("events"),f=true;if(e!==b&&e["submit"]!==b){a.each(e["submit"],function(a,b){if(typeof b.handler==="function")return f=b.handler(d)})}return f},disableElement:function(a){a.data("ujs:enable-with",a.html());a.html(a.data("disable-with"));a.bind("click.railsDisable",function(a){return d.stopEverything(a)})},enableElement:function(a){if(a.data("ujs:enable-with")!==b){a.html(a.data("ujs:enable-with"));a.data("ujs:enable-with",false)}a.unbind("click.railsDisable")}};if(d.fire(a(document),"rails:attachBindings")){a.ajaxPrefilter(function(a,b,c){if(!a.crossDomain){d.CSRFProtection(c)}});a(document).delegate(d.linkDisableSelector,"ajax:complete",function(){d.enableElement(a(this))});a(document).delegate(d.linkClickSelector,"click.rails",function(c){var e=a(this),f=e.data("method"),g=e.data("params");if(!d.allowAction(e))return d.stopEverything(c);if(e.is(d.linkDisableSelector))d.disableElement(e);if(e.data("remote")!==b){if((c.metaKey||c.ctrlKey)&&(!f||f==="GET")&&!g){return true}if(d.handleRemote(e)===false){d.enableElement(e)}return false}else if(e.data("method")){d.handleMethod(e);return false}});a(document).delegate(d.inputChangeSelector,"change.rails",function(b){var c=a(this);if(!d.allowAction(c))return d.stopEverything(b);d.handleRemote(c);return false});a(document).delegate(d.formSubmitSelector,"submit.rails",function(c){var e=a(this),f=e.data("remote")!==b,g=d.blankInputs(e,d.requiredInputSelector),h=d.nonBlankInputs(e,d.fileInputSelector);if(!d.allowAction(e))return d.stopEverything(c);if(g&&e.attr("novalidate")==b&&d.fire(e,"ajax:aborted:required",[g])){return d.stopEverything(c)}if(f){if(h){setTimeout(function(){d.disableFormElements(e)},13);return d.fire(e,"ajax:aborted:file",[h])}if(!a.support.submitBubbles&&a().jquery<"1.7"&&d.callFormSubmitBindings(e,c)===false)return d.stopEverything(c);d.handleRemote(e);return false}else{setTimeout(function(){d.disableFormElements(e)},13)}});a(document).delegate(d.formInputClickSelector,"click.rails",function(b){var c=a(this);if(!d.allowAction(c))return d.stopEverything(b);var e=c.attr("name"),f=e?{name:e,value:c.val()}:null;c.closest("form").data("ujs:submit-button",f)});a(document).delegate(d.formSubmitSelector,"ajax:beforeSend.rails",function(b){if(this==b.target)d.disableFormElements(a(this))});a(document).delegate(d.formSubmitSelector,"ajax:complete.rails",function(b){if(this==b.target)d.enableFormElements(a(this))});a(function(){csrf_token=a("meta[name=csrf-token]").attr("content");csrf_param=a("meta[name=csrf-param]").attr("content");a('form input[name="'+csrf_param+'"]').val(csrf_token)})}})(jQuery) |
@@ -48,7 +48,7 class ActivitiesControllerTest < ActionController::TestCase | |||
|
48 | 48 | :child => { :tag => "dt", |
|
49 | 49 | :attributes => { :class => /issue/ }, |
|
50 | 50 | :child => { :tag => "a", |
|
51 |
:content => / |
|
|
51 | :content => /Can't print recipes/, | |
|
52 | 52 | } |
|
53 | 53 | } |
|
54 | 54 | } |
@@ -69,7 +69,7 class ActivitiesControllerTest < ActionController::TestCase | |||
|
69 | 69 | :child => { :tag => "dt", |
|
70 | 70 | :attributes => { :class => /issue/ }, |
|
71 | 71 | :child => { :tag => "a", |
|
72 |
:content => / |
|
|
72 | :content => /Subproject issue/, | |
|
73 | 73 | } |
|
74 | 74 | } |
|
75 | 75 | } |
@@ -93,7 +93,7 class ActivitiesControllerTest < ActionController::TestCase | |||
|
93 | 93 | :child => { :tag => "dt", |
|
94 | 94 | :attributes => { :class => /issue/ }, |
|
95 | 95 | :child => { :tag => "a", |
|
96 |
:content => / |
|
|
96 | :content => /Can't print recipes/, | |
|
97 | 97 | } |
|
98 | 98 | } |
|
99 | 99 | } |
@@ -65,7 +65,7 class AuthSourcesControllerTest < ActionController::TestCase | |||
|
65 | 65 | assert_response :success |
|
66 | 66 | assert_template 'new' |
|
67 | 67 | end |
|
68 |
assert_error_tag :content => /host can |
|
|
68 | assert_error_tag :content => /host can't be blank/i | |
|
69 | 69 | end |
|
70 | 70 | |
|
71 | 71 | def test_edit |
@@ -90,7 +90,7 class AuthSourcesControllerTest < ActionController::TestCase | |||
|
90 | 90 | put :update, :id => 1, :auth_source => {:name => 'Renamed', :host => '', :port => '389', :attr_login => 'uid'} |
|
91 | 91 | assert_response :success |
|
92 | 92 | assert_template 'edit' |
|
93 |
assert_error_tag :content => /host can |
|
|
93 | assert_error_tag :content => /host can't be blank/i | |
|
94 | 94 | end |
|
95 | 95 | |
|
96 | 96 | def test_destroy |
@@ -53,7 +53,7 class IssueStatusesControllerTest < ActionController::TestCase | |||
|
53 | 53 | post :create, :issue_status => {:name => ''} |
|
54 | 54 | assert_response :success |
|
55 | 55 | assert_template 'new' |
|
56 |
assert_error_tag :content => /name can |
|
|
56 | assert_error_tag :content => /name can't be blank/i | |
|
57 | 57 | end |
|
58 | 58 | |
|
59 | 59 | def test_edit |
@@ -73,7 +73,7 class IssueStatusesControllerTest < ActionController::TestCase | |||
|
73 | 73 | put :update, :id => '3', :issue_status => {:name => ''} |
|
74 | 74 | assert_response :success |
|
75 | 75 | assert_template 'edit' |
|
76 |
assert_error_tag :content => /name can |
|
|
76 | assert_error_tag :content => /name can't be blank/i | |
|
77 | 77 | end |
|
78 | 78 | |
|
79 | 79 | def test_destroy |
@@ -61,7 +61,7 class IssuesControllerTest < ActionController::TestCase | |||
|
61 | 61 | assert_template 'index' |
|
62 | 62 | assert_not_nil assigns(:issues) |
|
63 | 63 | assert_nil assigns(:project) |
|
64 |
assert_tag :tag => 'a', :content => /Can |
|
|
64 | assert_tag :tag => 'a', :content => /Can't print recipes/ | |
|
65 | 65 | assert_tag :tag => 'a', :content => /Subproject issue/ |
|
66 | 66 | # private projects hidden |
|
67 | 67 | assert_no_tag :tag => 'a', :content => /Issue of a private subproject/ |
@@ -78,7 +78,7 class IssuesControllerTest < ActionController::TestCase | |||
|
78 | 78 | assert_template 'index' |
|
79 | 79 | assert_not_nil assigns(:issues) |
|
80 | 80 | assert_nil assigns(:project) |
|
81 |
assert_no_tag :tag => 'a', :content => /Can |
|
|
81 | assert_no_tag :tag => 'a', :content => /Can't print recipes/ | |
|
82 | 82 | assert_tag :tag => 'a', :content => /Subproject issue/ |
|
83 | 83 | end |
|
84 | 84 | |
@@ -95,7 +95,7 class IssuesControllerTest < ActionController::TestCase | |||
|
95 | 95 | assert_response :success |
|
96 | 96 | assert_template 'index' |
|
97 | 97 | assert_not_nil assigns(:issues) |
|
98 |
assert_tag :tag => 'a', :content => /Can |
|
|
98 | assert_tag :tag => 'a', :content => /Can't print recipes/ | |
|
99 | 99 | assert_no_tag :tag => 'a', :content => /Subproject issue/ |
|
100 | 100 | end |
|
101 | 101 | |
@@ -105,7 +105,7 class IssuesControllerTest < ActionController::TestCase | |||
|
105 | 105 | assert_response :success |
|
106 | 106 | assert_template 'index' |
|
107 | 107 | assert_not_nil assigns(:issues) |
|
108 |
assert_tag :tag => 'a', :content => /Can |
|
|
108 | assert_tag :tag => 'a', :content => /Can't print recipes/ | |
|
109 | 109 | assert_tag :tag => 'a', :content => /Subproject issue/ |
|
110 | 110 | assert_no_tag :tag => 'a', :content => /Issue of a private subproject/ |
|
111 | 111 | end |
@@ -117,7 +117,7 class IssuesControllerTest < ActionController::TestCase | |||
|
117 | 117 | assert_response :success |
|
118 | 118 | assert_template 'index' |
|
119 | 119 | assert_not_nil assigns(:issues) |
|
120 |
assert_tag :tag => 'a', :content => /Can |
|
|
120 | assert_tag :tag => 'a', :content => /Can't print recipes/ | |
|
121 | 121 | assert_tag :tag => 'a', :content => /Subproject issue/ |
|
122 | 122 | assert_tag :tag => 'a', :content => /Issue of a private subproject/ |
|
123 | 123 | end |
@@ -823,7 +823,7 class IssuesControllerTest < ActionController::TestCase | |||
|
823 | 823 | :child => { :tag => 'legend', |
|
824 | 824 | :content => /Notes/ } } |
|
825 | 825 | assert_tag :tag => 'title', |
|
826 |
:content => "Bug #1: Can |
|
|
826 | :content => "Bug #1: Can't print recipes - eCookbook - Redmine" | |
|
827 | 827 | end |
|
828 | 828 | |
|
829 | 829 | def test_show_by_manager |
@@ -1807,7 +1807,7 class IssuesControllerTest < ActionController::TestCase | |||
|
1807 | 1807 | assert_template 'new' |
|
1808 | 1808 | issue = assigns(:issue) |
|
1809 | 1809 | assert_not_nil issue |
|
1810 |
assert_error_tag :content => /Database can |
|
|
1810 | assert_error_tag :content => /Database can't be blank/ | |
|
1811 | 1811 | end |
|
1812 | 1812 | |
|
1813 | 1813 | def test_create_should_validate_required_fields |
@@ -1831,8 +1831,8 class IssuesControllerTest < ActionController::TestCase | |||
|
1831 | 1831 | assert_template 'new' |
|
1832 | 1832 | end |
|
1833 | 1833 | |
|
1834 |
assert_error_tag :content => /Due date can |
|
|
1835 |
assert_error_tag :content => /Bar can |
|
|
1834 | assert_error_tag :content => /Due date can't be blank/i | |
|
1835 | assert_error_tag :content => /Bar can't be blank/i | |
|
1836 | 1836 | end |
|
1837 | 1837 | |
|
1838 | 1838 | def test_create_should_ignore_readonly_fields |
@@ -2869,7 +2869,7 class IssuesControllerTest < ActionController::TestCase | |||
|
2869 | 2869 | assert_response :success |
|
2870 | 2870 | assert_template 'edit' |
|
2871 | 2871 | |
|
2872 |
assert_error_tag :descendant => {:content => /Activity can |
|
|
2872 | assert_error_tag :descendant => {:content => /Activity can't be blank/} | |
|
2873 | 2873 | assert_tag :textarea, :attributes => { :name => 'notes' }, :content => "\n"+notes |
|
2874 | 2874 | assert_tag :input, :attributes => { :name => 'time_entry[hours]', :value => "2z" } |
|
2875 | 2875 | end |
@@ -2887,8 +2887,8 class IssuesControllerTest < ActionController::TestCase | |||
|
2887 | 2887 | assert_response :success |
|
2888 | 2888 | assert_template 'edit' |
|
2889 | 2889 | |
|
2890 |
assert_error_tag :descendant => {:content => /Activity can |
|
|
2891 |
assert_error_tag :descendant => {:content => /Hours can |
|
|
2890 | assert_error_tag :descendant => {:content => /Activity can't be blank/} | |
|
2891 | assert_error_tag :descendant => {:content => /Hours can't be blank/} | |
|
2892 | 2892 | assert_tag :textarea, :attributes => { :name => 'notes' }, :content => "\n"+notes |
|
2893 | 2893 | assert_tag :input, :attributes => { :name => 'time_entry[comments]', :value => "this is my comment" } |
|
2894 | 2894 | end |
@@ -149,7 +149,7 class MyControllerTest < ActionController::TestCase | |||
|
149 | 149 | :new_password_confirmation => 'hello2' |
|
150 | 150 | assert_response :success |
|
151 | 151 | assert_template 'password' |
|
152 |
assert_error_tag :content => /Password doesn |
|
|
152 | assert_error_tag :content => /Password doesn't match confirmation/ | |
|
153 | 153 | |
|
154 | 154 | # wrong password |
|
155 | 155 | post :password, :password => 'wrongpassword', |
@@ -123,7 +123,7 class NewsControllerTest < ActionController::TestCase | |||
|
123 | 123 | assert_template 'new' |
|
124 | 124 | assert_not_nil assigns(:news) |
|
125 | 125 | assert assigns(:news).new_record? |
|
126 |
assert_error_tag :content => /title can |
|
|
126 | assert_error_tag :content => /title can't be blank/i | |
|
127 | 127 | end |
|
128 | 128 | |
|
129 | 129 | def test_get_edit |
@@ -160,7 +160,7 class NewsControllerTest < ActionController::TestCase | |||
|
160 | 160 | put :update, :id => 1, :news => { :description => '' } |
|
161 | 161 | assert_response :success |
|
162 | 162 | assert_template 'edit' |
|
163 |
assert_error_tag :content => /description can |
|
|
163 | assert_error_tag :content => /description can't be blank/i | |
|
164 | 164 | end |
|
165 | 165 | |
|
166 | 166 | def test_destroy |
@@ -409,7 +409,7 class ProjectsControllerTest < ActionController::TestCase | |||
|
409 | 409 | post :update, :id => 1, :project => {:name => ''} |
|
410 | 410 | assert_response :success |
|
411 | 411 | assert_template 'settings' |
|
412 |
assert_error_tag :content => /name can |
|
|
412 | assert_error_tag :content => /name can't be blank/i | |
|
413 | 413 | end |
|
414 | 414 | |
|
415 | 415 | def test_update_should_be_denied_for_member_on_closed_project |
@@ -95,7 +95,7 class TrackersControllerTest < ActionController::TestCase | |||
|
95 | 95 | end |
|
96 | 96 | assert_response :success |
|
97 | 97 | assert_template 'new' |
|
98 |
assert_error_tag :content => /name can |
|
|
98 | assert_error_tag :content => /name can't be blank/i | |
|
99 | 99 | end |
|
100 | 100 | |
|
101 | 101 | def test_edit |
@@ -160,7 +160,7 class TrackersControllerTest < ActionController::TestCase | |||
|
160 | 160 | put :update, :id => 1, :tracker => { :name => '' } |
|
161 | 161 | assert_response :success |
|
162 | 162 | assert_template 'edit' |
|
163 |
assert_error_tag :content => /name can |
|
|
163 | assert_error_tag :content => /name can't be blank/i | |
|
164 | 164 | end |
|
165 | 165 | |
|
166 | 166 | def test_move_lower |
@@ -58,7 +58,7 class WikisControllerTest < ActionController::TestCase | |||
|
58 | 58 | end |
|
59 | 59 | |
|
60 | 60 | assert_include 'errorExplanation', response.body |
|
61 |
assert_include 'Start page can |
|
|
61 | assert_include 'Start page can't be blank', response.body | |
|
62 | 62 | end |
|
63 | 63 | |
|
64 | 64 | def test_update |
@@ -690,7 +690,7 RAW | |||
|
690 | 690 | |
|
691 | 691 | expected = <<-EXPECTED |
|
692 | 692 | <p><a href="/projects/ecookbook/wiki/CookBook_documentation" class="wiki-page">CookBook documentation</a></p> |
|
693 |
<p><a href="/issues/1" class="issue status-1 priority-4" title="Can |
|
|
693 | <p><a href="/issues/1" class="issue status-1 priority-4" title="Can't print recipes (New)">#1</a></p> | |
|
694 | 694 | <pre> |
|
695 | 695 | [[CookBook documentation]] |
|
696 | 696 |
@@ -55,7 +55,7 class MailerTest < ActiveSupport::TestCase | |||
|
55 | 55 | # link to a referenced ticket |
|
56 | 56 | assert_select 'a[href=?][title=?]', |
|
57 | 57 | 'https://mydomain.foo/issues/1', |
|
58 |
'Can |
|
|
58 | 'Can't print recipes (New)', | |
|
59 | 59 | :text => '#1' |
|
60 | 60 | # link to a changeset |
|
61 | 61 | assert_select 'a[href=?][title=?]', |
@@ -94,7 +94,7 class MailerTest < ActiveSupport::TestCase | |||
|
94 | 94 | # link to a referenced ticket |
|
95 | 95 | assert_select 'a[href=?][title=?]', |
|
96 | 96 | 'http://mydomain.foo/rdm/issues/1', |
|
97 |
'Can |
|
|
97 | 'Can't print recipes (New)', | |
|
98 | 98 | :text => '#1' |
|
99 | 99 | # link to a changeset |
|
100 | 100 | assert_select 'a[href=?][title=?]', |
@@ -134,7 +134,7 class MailerTest < ActiveSupport::TestCase | |||
|
134 | 134 | # link to a referenced ticket |
|
135 | 135 | assert_select 'a[href=?][title=?]', |
|
136 | 136 | 'http://mydomain.foo/rdm/issues/1', |
|
137 |
'Can |
|
|
137 | 'Can't print recipes (New)', | |
|
138 | 138 | :text => '#1' |
|
139 | 139 | # link to a changeset |
|
140 | 140 | assert_select 'a[href=?][title=?]', |
General Comments 0
You need to be logged in to leave comments.
Login now