aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/gems/gettext-2.1.0/test/test_pomessage.rb
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gems/gettext-2.1.0/test/test_pomessage.rb')
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_pomessage.rb99
1 files changed, 99 insertions, 0 deletions
diff --git a/vendor/gems/gettext-2.1.0/test/test_pomessage.rb b/vendor/gems/gettext-2.1.0/test/test_pomessage.rb
new file mode 100644
index 000000000..51b7d053d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_pomessage.rb
@@ -0,0 +1,99 @@
+require 'testlib/helper.rb'
+require 'gettext/tools/parser/ruby'
+
+# Most functionality of PoMessage is thoroughly tested together
+# with the parser and po file generator. Here only tests for some special
+# functionality.
+class TestPoMessage < Test::Unit::TestCase
+
+ def test_context_match
+ tt1 = GetText::PoMessage.new(:msgctxt)
+ tt1.msgid = 'hello'
+ tt1.msgctxt = 'world'
+ tt2 = GetText::PoMessage.new(:normal)
+ tt2.msgid = 'hello'
+ assert_raise GetText::ParseError do
+ tt1.merge tt2
+ end
+ end
+
+ def test_attribute_accumulation
+ tt = GetText::PoMessage.new(:plural)
+ tt.set_current_attribute 'long'
+ tt.set_current_attribute ' tail'
+ tt.advance_to_next_attribute
+ tt.set_current_attribute 'long tails'
+ assert_equal 'long tail', tt.msgid
+ assert_equal 'long tails', tt.msgid_plural
+ end
+
+ def test_to_po_str_normal
+ po = GetText::PoMessage.new(:normal)
+ po.msgid = 'hello'
+ po.sources = ["file1:1", "file2:10"]
+ assert_equal "\n#: file1:1 file2:10\nmsgid \"hello\"\nmsgstr \"\"\n", po.to_po_str
+
+ po.msgctxt = 'context'
+ po.msgid_plural = 'hello2'
+ # Ignore these properties.
+ assert_equal "\n#: file1:1 file2:10\nmsgid \"hello\"\nmsgstr \"\"\n", po.to_po_str
+ end
+
+ def test_to_po_str_plural
+ po = GetText::PoMessage.new(:plural)
+ po.msgid = 'hello'
+ po.msgid_plural = 'hello2'
+ po.sources = ["file1:1", "file2:10"]
+ assert_equal "\n#: file1:1 file2:10\nmsgid \"hello\"\nmsgid_plural \"hello2\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n", po.to_po_str
+
+ po.msgctxt = 'context'
+ # Ignore this property
+ assert_equal "\n#: file1:1 file2:10\nmsgid \"hello\"\nmsgid_plural \"hello2\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n", po.to_po_str
+ end
+
+ def test_to_po_str_msgctxt
+ po = GetText::PoMessage.new(:msgctxt)
+ po.msgctxt = 'context'
+ po.msgid = 'hello'
+ po.sources = ["file1:1", "file2:10"]
+ assert_equal "\n#: file1:1 file2:10\nmsgctxt \"context\"\nmsgid \"hello\"\nmsgstr \"\"\n", po.to_po_str
+ end
+
+ def test_to_po_str_msgctxt_plural
+ po = GetText::PoMessage.new(:msgctxt_plural)
+ po.msgctxt = 'context'
+ po.msgid = 'hello'
+ po.msgid_plural = 'hello2'
+ po.sources = ["file1:1", "file2:10"]
+ assert_equal "\n#: file1:1 file2:10\nmsgctxt \"context\"\nmsgid \"hello\"\nmsgid_plural \"hello2\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n", po.to_po_str
+ end
+
+ def test_to_po_str_exception
+ po = GetText::PoMessage.new(:normal)
+ po.sources = ["file1:1", "file2:10"]
+ assert_raise(RuntimeError){ po.to_po_str }
+
+ po.sources = nil
+ assert_raise(RuntimeError){ po.to_po_str }
+
+ po = GetText::PoMessage.new(:plural)
+ po.msgid = 'hello'
+ po.sources = ["file1:1", "file2:10"]
+ assert_raise(RuntimeError){ po.to_po_str }
+
+ po.msgid_plural = 'hello2'
+ po.sources = nil
+ assert_raise(RuntimeError){ po.to_po_str }
+
+ po = GetText::PoMessage.new(:msgctxt)
+ po.msgid = 'hello'
+ po.sources = ["file1:1", "file2:10"]
+ assert_raise(RuntimeError){ po.to_po_str }
+
+ po = GetText::PoMessage.new(:msgctxt_plural)
+ po.msgctxt = 'context'
+ po.msgid = 'hello'
+ po.sources = ["file1:1", "file2:10"]
+ assert_raise(RuntimeError){ po.to_po_str }
+ end
+end