diff options
author | Francis Irving <francis@mysociety.org> | 2009-12-03 13:22:55 +0000 |
---|---|---|
committer | Francis Irving <francis@mysociety.org> | 2009-12-03 13:22:55 +0000 |
commit | 2eabd0bf1d5c3d0cfa0f2883f6cfd65298ef4cd1 (patch) | |
tree | ce915296612a14789c43e1026b85a2b37a454654 /spec/lib | |
parent | 1053556b7c12d757f2e654266a855609658b2964 (diff) |
Rename spec files to libs, and to end _spec
Diffstat (limited to 'spec/lib')
-rw-r--r-- | spec/lib/fcgi_fixes_spec.rb | 14 | ||||
-rw-r--r-- | spec/lib/format_spec.rb | 53 | ||||
-rw-r--r-- | spec/lib/timezone_fixes_spec.rb | 81 | ||||
-rw-r--r-- | spec/lib/tmail_extensions_spec.rb | 20 |
4 files changed, 168 insertions, 0 deletions
diff --git a/spec/lib/fcgi_fixes_spec.rb b/spec/lib/fcgi_fixes_spec.rb new file mode 100644 index 000000000..92b954645 --- /dev/null +++ b/spec/lib/fcgi_fixes_spec.rb @@ -0,0 +1,14 @@ +# This is a test of the monkey patches in lib/fcgi_fixes.rb + +require File.dirname(__FILE__) + '/../spec_helper' + +require 'railties/lib/fcgi_handler.rb' + +describe "when doing FastCGI" do + + it "should have fixed dynamic FastCGI bug" do + RailsFCGIHandler::SIGNALS['TERM'].should == :exit + end + +end + diff --git a/spec/lib/format_spec.rb b/spec/lib/format_spec.rb new file mode 100644 index 000000000..8f0ebbed9 --- /dev/null +++ b/spec/lib/format_spec.rb @@ -0,0 +1,53 @@ +require File.dirname(__FILE__) + '/../spec_helper' + +describe "when making clickable" do + + it "should make URLs into links" do + text = "Hello http://www.flourish.org goodbye" + text = CGI.escapeHTML(text) + formatted = MySociety::Format.make_clickable(text) + formatted.should == "Hello <a href='http://www.flourish.org'>http://www.flourish.org</a> goodbye" + end + + it "should make wrapped URLs in angle brackets clickable" do + text = """<http://www.flou +rish.org/bl +og> + +More stuff and then another angle bracket >""" + text = CGI.escapeHTML(text) + + formatted = MySociety::Format.make_clickable(text) + + formatted.should == "<<a href='http://www.flourish.org/blog'>http://www.flourish.org/blog</a>>\n\nMore stuff and then another angle bracket >" + end + + it "should make wrapped URLs in angle brackets clickable" do + text = """<https://web.nhs.net/owa/redir.aspx?C=25a8af7e66054d62a435313f7f3d4694&URL=h +ttp%3a%2f%2fwww.ico.gov.uk%2fupload%2fdocuments%2flibrary%2ffreedom_of_infor +mation%2fdetailed_specialist_guides%2fname_of_applicant_fop083_v1.pdf> Valid +request - name and address for correspondence + +If we can be of any further assistance please contact our Helpline on 08456 +30 60 60 or 01625 545745 if you would prefer to call a national rate number, +quoting your case reference number. You may also find some useful +information on our website at +<https://web.nhs.net/owa/redir.aspx?C=25a8af7e66054d62a435313f7f3d4694&URL=h +ttp%3a%2f%2fwww.ico.gov.uk%2f> www.ico.gov.uk.""" + text = CGI.escapeHTML(text) + formatted = MySociety::Format.make_clickable(text) + + expected_formatted = """<<a href='https://web.nhs.net/owa/redir.aspx?C=25a8af7e66054d62a435313f7f3d4694&URL=http%3a%2f%2fwww.ico.gov.uk%2fupload%2fdocuments%2flibrary%2ffreedom_of_information%2fdetailed_specialist_guides%2fname_of_applicant_fop083_v1.pdf'>https://web.nhs.net/owa/redir.aspx?C=25a8af7e66054d62a435313f7f3d4694&URL=http%3a%2f%2fwww.ico.gov.uk%2fupload%2fdocuments%2flibrary%2ffreedom_of_information%2fdetailed_specialist_guides%2fname_of_applicant_fop083_v1.pdf</a>> Valid +request - name and address for correspondence + +If we can be of any further assistance please contact our Helpline on 08456 +30 60 60 or 01625 545745 if you would prefer to call a national rate number, +quoting your case reference number. You may also find some useful +information on our website at +<<a href='https://web.nhs.net/owa/redir.aspx?C=25a8af7e66054d62a435313f7f3d4694&URL=http%3a%2f%2fwww.ico.gov.uk%2f'>https://web.nhs.net/owa/redir.aspx?C=25a8af7e66054d62a435313f7f3d4694&URL=http%3a%2f%2fwww.ico.gov.uk%2f</a>> <a href='http://www.ico.gov.uk'>www.ico.gov.uk</a>.""" + + formatted.should == expected_formatted + end + + +end diff --git a/spec/lib/timezone_fixes_spec.rb b/spec/lib/timezone_fixes_spec.rb new file mode 100644 index 000000000..9ceb58a13 --- /dev/null +++ b/spec/lib/timezone_fixes_spec.rb @@ -0,0 +1,81 @@ +# This is a test of the monkey patches in timezone_fixes.rb + +# We use EximLogDone here just as a totally random model that has a datetime type. + +require File.dirname(__FILE__) + '/../spec_helper' + +describe "when doing things with timezones" do + + it "should preserve time objects with local time conversion to default timezone UTC" do + with_env_tz 'America/New_York' do + with_active_record_default_timezone :utc do + time = Time.local(2000) + exim_log_done = EximLogDone.create('last_stat' => time, 'filename' => 'dummy') + saved_time = EximLogDone.find(exim_log_done.id).last_stat + assert_equal time, saved_time + assert_equal [0, 0, 0, 1, 1, 2000, 6, 1, false, "EST"], time.to_a + assert_equal [0, 0, 5, 1, 1, 2000, 6, 1, false, "UTC"], saved_time.to_a + end + end + end + + it "should preserve time objects with time with zone conversion to default timezone UTC" do + with_env_tz 'America/New_York' do + with_active_record_default_timezone :utc do + Time.use_zone 'Central Time (US & Canada)' do + time = Time.zone.local(2000) + exim_log_done = EximLogDone.create('last_stat' => time, 'filename' => 'dummy') + saved_time = EximLogDone.find(exim_log_done.id).last_stat + assert_equal time, saved_time + assert_equal [0, 0, 0, 1, 1, 2000, 6, 1, false, "CST"], time.to_a + assert_equal [0, 0, 6, 1, 1, 2000, 6, 1, false, "UTC"], saved_time.to_a + end + end + end + end + + # XXX Couldn't get this test to work - but the other tests seem to detect presence of + # the monkey patch, so they will do for now. + #it "should preserve time objects with UTC time conversion to default timezone local" do + # with_env_tz 'America/New_York' do + # time = Time.utc(2000) + # exim_log_done = EximLogDone.create('last_stat' => time, 'filename' => 'dummy') + # saved_time = EximLogDone.find(exim_log_done.id).last_stat + # assert_equal time, saved_time + # assert_equal [0, 0, 0, 1, 1, 2000, 6, 1, false, "UTC"], time.to_a + # assert_equal [0, 0, 19, 31, 12, 1999, 5, 365, false, "EST"], saved_time.to_a + # end + #end + + it "should preserve time objects with time with zone conversion to default timezone local" do + with_env_tz 'America/New_York' do + with_active_record_default_timezone :local do + Time.use_zone 'Central Time (US & Canada)' do + time = Time.zone.local(2000) + exim_log_done = EximLogDone.create('last_stat' => time, 'filename' => 'dummy') + saved_time = EximLogDone.find(exim_log_done.id).last_stat + assert_equal time, saved_time + assert_equal [0, 0, 0, 1, 1, 2000, 6, 1, false, "CST"], time.to_a + assert_equal [0, 0, 1, 1, 1, 2000, 6, 1, false, "EST"], saved_time.to_a + end + end + end + end + + protected + def with_env_tz(new_tz = 'US/Eastern') + old_tz, ENV['TZ'] = ENV['TZ'], new_tz + yield + ensure + old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ') + end + + def with_active_record_default_timezone(zone) + old_zone, ActiveRecord::Base.default_timezone = ActiveRecord::Base.default_timezone, zone + yield + ensure + ActiveRecord::Base.default_timezone = old_zone + end +end + + diff --git a/spec/lib/tmail_extensions_spec.rb b/spec/lib/tmail_extensions_spec.rb new file mode 100644 index 000000000..7b9e1b495 --- /dev/null +++ b/spec/lib/tmail_extensions_spec.rb @@ -0,0 +1,20 @@ +# This is a test of the monkey patches in lib/fcgi_fixes.rb + +require File.dirname(__FILE__) + '/../spec_helper' + +describe "when using TMail" do + + it "should load an email with funny MIME settings" do + # just send it to the holding pen + InfoRequest.holding_pen_request.incoming_messages.size.should == 0 + receive_incoming_mail("humberside-police-odd-mime-type.email", 'dummy') + InfoRequest.holding_pen_request.incoming_messages.size.should == 1 + + incoming_message = InfoRequest.holding_pen_request.incoming_messages[0] + + # This will raise an error if the bug in TMail hasn't been fixed + incoming_message.get_body_for_html_display() + end + +end + |