summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--db/migrate/20091227112908_change_wiki_contents_text_limit.rb16
-rw-r--r--test/unit/wiki_content_test.rb8
2 files changed, 24 insertions, 0 deletions
diff --git a/db/migrate/20091227112908_change_wiki_contents_text_limit.rb b/db/migrate/20091227112908_change_wiki_contents_text_limit.rb
new file mode 100644
index 000000000..225f71e68
--- /dev/null
+++ b/db/migrate/20091227112908_change_wiki_contents_text_limit.rb
@@ -0,0 +1,16 @@
+class ChangeWikiContentsTextLimit < ActiveRecord::Migration
+ def self.up
+ # Migrates MySQL databases only
+ # Postgres would raise an error (see http://dev.rubyonrails.org/ticket/3818)
+ # Not fixed in Rails 2.3.5
+ if ActiveRecord::Base.connection.adapter_name =~ /mysql/i
+ max_size = 16.megabytes
+ change_column :wiki_contents, :text, :text, :limit => max_size
+ change_column :wiki_content_versions, :data, :binary, :limit => max_size
+ end
+ end
+
+ def self.down
+ # no-op
+ end
+end
diff --git a/test/unit/wiki_content_test.rb b/test/unit/wiki_content_test.rb
index 372121bda..0261678ab 100644
--- a/test/unit/wiki_content_test.rb
+++ b/test/unit/wiki_content_test.rb
@@ -77,4 +77,12 @@ class WikiContentTest < ActiveSupport::TestCase
assert_kind_of String, version.text
end
end
+
+ def test_large_text_should_not_be_truncated_to_64k
+ page = WikiPage.new(:wiki => @wiki, :title => "Big page")
+ page.content = WikiContent.new(:text => "a" * 500.kilobyte, :author => User.find(1))
+ assert page.save
+ page.reload
+ assert_equal 500.kilobyte, page.content.text.size
+ end
end