aboutsummaryrefslogtreecommitdiffstats
path: root/spec
Commit message (Collapse)AuthorAgeLines
* We're assuming feed urls without format suffixes should serve up atom/xml, ↵0.11.0.4hotfix/0.11.0.4Louise Crow2013-06-05-0/+12
| | | | so ignore any format from content negotiation in favour of that default.
* Merge branch 'release/0.11'0.11.0.3Louise Crow2013-06-04-863/+1772
|\
| * Handle json requests for hidden info requests.Louise Crow2013-06-03-7/+32
| |
| * For non-HTML requests, just return the response code for now.Louise Crow2013-06-03-0/+17
| |
| * Parse the 'to' address as if on a real mail to trigger quoted string encoding.Louise Crow2013-06-03-0/+16
| |
| * Fix for subject lines with invalid UTF-8 as the last characterMark Longair2013-06-03-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This seems to be the bug mentioned here: http://po-ru.com/diary/fixing-invalid-utf-8-in-ruby-revisited/ That explains that some versions of Iconv don't ignore invalid characters when converting to UTF-8 even with //IGNORE if that invalid character happens to be at the end of the string. In fact, as Matthew Somerville pointed out, with some versions of iconv (e.g. 1.14 on Mac OS, apparently) it's necessary to add and remove more than one space at the end, in case the first character of the byte sequence indicates a long sequence. We add and remove 4 to be on the safe side.
| * Make sure Atom feeds are served with content type application/atom+xmlMark Longair2013-05-29-0/+1
| | | | | | | | Fixes #961
| * When extracting attachments for an incoming message and getting the body of ↵Louise Crow2013-05-29-0/+43
| | | | | | | | the main part in order to look for uuencoded text, make sure that we're getting that main part from the reparsed attachments, and not getting an obsolete attachment. Fixes #958.
| * Remove erroneous test nameLouise Crow2013-05-28-1/+1
| |
| * Add a comment about the behaviour of the censor rulesMark Longair2013-05-24-0/+2
| |
| * The file_name on getting an attachment should be the display filenameMark Longair2013-05-24-1/+1
| | | | | | | | | | Previously the behaviour would have been the same, since we weren't checking the filename so strictly.
| * Make an attachment filename in test fixtures more difficultMark Longair2013-05-24-26/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | This commit changes 'hello.txt' to 'hello-world.txt' in the incoming-request-two-same-name.email fixture. The reasoning for this change is that if there are no special characters in the filename then filename and display_filename will be the same and the tests won't pick up any confusion between the two. The test requests to :get_attachment and :get_attachment_as_html should get the display_filename rather than filename.
| * Check that display_filename matches URL part number or fallbackMark Longair2013-05-24-15/+35
| | | | | | | | | | | | | | | | | | | | | | If the display_filename of the attachment found from the URL part number doesn't match the passed in display_filename then the email may have been reparsed, causing a reordering. In that case, look to see if there is another attachment that uniquely matches that filename, and, if so, return that other attachment. If no matching uniquely matching filename is found, redirect to the incoming message, rather than returning a 404.
| * Retain old handling of malformed addresses in To and Cc linesMark Longair2013-05-21-0/+17
| | | | | | | | | | | | | | | | | | | | The behaviour of the TMail backend's 'to' and 'cc' methods where there was a malformed To: or Cc: line was to return nil, whereas Mail returns a version of the string anyway. We'd have to change quite a lot of code to deal with an extra possible class of returned objects, so it's simplest for the moment to monkey-patch Mail::Message's 'to' and 'cc' methods to restore the old behaviour.
| * Cope with emails with a missing final MIME boundaryMark Longair2013-05-17-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Mail gem deals with multipart messages that look as if they should have 1 part but are missing the final MIME boundary, by make the parts list empty and setting part.body to the text of the email. Rather than throwing an exception in this case, we just pretend that part is text/plain and return it, so that the page doesn't error and we still have a chance of some useful text being displayed. Note that we haven't investigated yet the case of emails that have more than one start boundary, but no final boundary. Fixes #921
| * Avoid an FoiAttachment validation failure under Rails 3Mark Longair2013-05-16-0/+38
| | | | | | | | | | | | | | | | | | | | | | Under Rails 3, the uudecoded FoiAttachment in this test fails validation at the self.save! in IncomingMessage.parse_raw_email, although the FoiAttachment has been correctly created and saved to the database in _uudecode_and_save_attachments. Forcing a reload=true on self.foi_attachments fixes this. Thanks to Louise Crow for finding the fix for this problem.
| * Add failing test for case where a mail part has a content-type header with ↵Louise Crow2013-05-16-0/+44
| | | | | | | | no charset field.
| * Mark as "pending" two tests relating to odd MIME boundary casesMark Longair2013-05-16-14/+18
| | | | | | | | | | | | | | These cases are rare, and probably need to be resolved by reporting issues against the Mail gem (although it's debatable what the more correct or pragmatic behaviour should be in both cases).
| * Add another mail parsing testMark Longair2013-05-16-0/+7
| | | | | | | | | | At one point in development this email was misparsed, so I've added this as test to check for regressions.
| * Add functions for converting from arbitrary text data to UTF-8Mark Longair2013-05-16-0/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Throughout the codebase it is simplest and most consistent if we could assume that all text/* attachments are represented by UTF-8 strings, and this was largely true with the TMail backend which ensured that all returned text parts were in UTF-8. We have to change the replacement Mail-backed to similarly attempt to convert text parts to UTF-8. This commit introduces two functions which are useful for this. The normalize_string_to_utf8 function will try various encodings, either suggested or guessed (with charlock_holmes) to convert the passed string to UTF-8, and if it can't find a suitable encoding will throw an exception. Unfortunately, the current behaviour of the site is that uninterpretable text/* attachments are still passed around and mangled to UTF-8 just before display. To mimic this it's also useful to have the convert_string_to_utf8_or_binary function, which tries to convert the string to UTF-8 with normalize_string_to_utf8, but if that's not possible just returns the original string. (In Ruby 1.9, encoding will be set to UTF-8 or ASCII-8BIT appropriately.)
| * Add a new example for unconvertible-to-UTF-8 text part dataMark Longair2013-05-16-2/+39
| | | | | | | | | | | | | | | | | | | | | | The example file that was used for checking for text attachment data which could not be converted to UTF-8 is one that we *can* actually deal with by guessing the character set, since it's valid GB18030. So, this commit changes that test to check for the first few Chinese characters in that email, and introduces a replacement test with text from /dev/random, which should not be interpretable in any sensible way.
| * Switch to just loading fixtures in tests as binary stringsMark Longair2013-05-16-10/+4
| | | | | | | | | | | | | | | | | | | | The data loaded with load_file_fixture is generally used in the tests as if it were binary data received from the MTA, so just load it as binary data - in Ruby 1.9 this means that it will end up with the encoding ASCII-8BIT. The same is the case when reading data from a fixture file in receive_incoming_mail.
| * Fix a syntax errorMark Longair2013-05-16-1/+1
| |
| * Add a test for parsing a malformed emailMark Longair2013-05-16-0/+35
| | | | | | | | | | | | | | This example email indicates the wrong charset and includes a top bit set character despite Content-Transfer-Encoding: 7bit - nonetheless, we should be able to convert it to UTF-8 and interpret the character correctly.
| * Add a test for a missing final MIME boundaryMark Longair2013-05-16-0/+30
| | | | | | | | | | | | | | | | | | If there is a missing final MIME boundary, the behaviour of Alaveteli with the TMail backend was to still parse the attachment, but with the new code it currently throws an exception. This commit adds a test that asserts that the attachment should be parsed despite the email being malformed in this way.
| * Add a test to check that anything in the MIME epilogue is ignoredMark Longair2013-05-16-0/+121
| | | | | | | | | | | | | | | | | | | | | | There is currently a difference in behaviour in the parsing of nested MIME multipart attachments between the Mail and TMail based backends. This commit adds a test that will pass if the behaviour is the same as the the old (TMail-based) version, which I believe is correct according to RFC 1521. The example email has a PNG attachment after the final MIME boundary, and the RFC says that anything after the final boundary ("the epilogue") should be ignored.
| * Add tests for TNEF attachments that should be handledMark Longair2013-05-16-0/+254
| | | | | | | | | | | | | | | | | | | | | | These two cases were ignored previously, and we need to make sure that they still are under the switch from TMail to Mail. One TNEF attachment is a heavily truncated one from a real example from Alaveteli that has no personal data in it. The other is an example from the tests in the distribution of the tnef package for Ubuntu 1.4.9-1 - it's an HTML version of the US constitution.
| * Add call to load_raw_emails_data to fix dependency on raw emails exposed in ↵Louise Crow2013-05-13-0/+1
| | | | | | | | https://travis-ci.org/mysociety/alaveteli/jobs/7126060.
| * Merge branch 'feature/restore-custom-error-pages' into rails-3-developLouise Crow2013-05-13-29/+102
| |\
| | * Add encoding line as we use utf-8 in the tests.Louise Crow2013-05-02-0/+1
| | |
| | * Add logging of any errors.Louise Crow2013-05-02-1/+6
| | |
| | * Clearer setting of status code, addition of notification.Louise Crow2013-05-02-3/+5
| | |
| | * Rewrite specs to more clearly represent expected behaviour - exceptions and ↵Louise Crow2013-05-02-29/+94
| | | | | | | | | | | | 404s on non-local requests are to be rendered with our custom template (such that this template can be overriden by themes in the usual way). Note that requests to the admin interface are considered local.
| * | All the tests in this group rely on having the xapian db - make it part of ↵Louise Crow2013-05-02-1/+1
| |/ | | | | | | the setup.
| * The test "should work" relies on the xapian index existing - make sure this ↵Louise Crow2013-05-01-2/+4
| | | | | | | | is true for all tests in this group.
| * Remove debian-specific require clause and use Gemfile to specify ↵Louise Crow2013-04-30-1/+49
| | | | | | | | non-standard require - bundler should be supplying the gem now.
| * Update reference to Configuration to reflect name change to ↵Louise Crow2013-04-30-1/+1
| | | | | | | | AlaveteliConfiguration
| * Remove spec.opts file - deprecated in favour of .rspec.Louise Crow2013-04-25-3/+0
| |
| * Merge branch 'release/0.9' into rails-3-developLouise Crow2013-04-24-306/+272
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Gemfile.lock app/controllers/public_body_controller.rb app/mailers/track_mailer.rb app/views/request/_hidden_correspondence.html.erb app/views/request/_sidebar.html.erb app/views/request/hidden.html.erb app/views/request/new_please_describe.html.erb app/views/request/preview.html.erb app/views/user/show.html.erb config/environment.rb config/routes.rb spec/controllers/public_body_controller_spec.rb
| * \ Merge branch 'hotfix/0.8.0.1' into rails-3-developLouise Crow2013-04-02-7/+22
| |\ \ | | | | | | | | | | | | | | | | | | | | Conflicts: config/environment.rb spec/mailers/track_mailer_spec.rb
| * | | Unraveled another test environment cleanup bug with config.order = random:33691Matthew Landauer2013-03-26-0/+13
| | | |
| * | | Fixup test issue found with config.order = 'random:5549'Matthew Landauer2013-03-26-0/+2
| | | |
| * | | Update Configuration references to new name.Louise Crow2013-03-19-1/+1
| | | |
| * | | Merge branch 'develop' into rails-3-developLouise Crow2013-03-19-0/+13
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Gemfile Gemfile.lock app/views/admin_request/show.html.erb config/environment.rb
| * | | | Fix another order dependent test issueMatthew Landauer2013-03-19-0/+4
| | | | |
| * | | | Another order dependent test issue fixedMatthew Landauer2013-03-19-0/+2
| | | | |
| * | | | Merge branch 'develop' into rails-3-developMatthew Landauer2013-03-19-7/+7
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Gemfile Gemfile.lock doc/INSTALL.md
| * | | | | Now randomise the test order by default to help uncover order dependent issuesMatthew Landauer2013-03-19-1/+1
| | | | | |
| * | | | | Remove test of rails internals that is somehow interfering with other testsMatthew Landauer2013-03-19-4/+0
| | | | | |
| * | | | | Deal with further side effects of stuff done outside of a transaction in testsMatthew Landauer2013-03-19-0/+2
| | | | | |