From edf4a4783c454ec6e5e63d70bac716b3821768eb Mon Sep 17 00:00:00 2001 From: hukl Date: Sat, 21 Feb 2009 14:27:08 +0100 Subject: cloning now with all the translations. test added --- app/models/node.rb | 16 +++++++++++----- config/locales/de.yml | 2 ++ test/unit/node_test.rb | 28 ++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 config/locales/de.yml diff --git a/app/models/node.rb b/app/models/node.rb index 30e9e59..170ca1c 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -58,11 +58,17 @@ class Node < ActiveRecord::Base raise "Page is locked" else # TODO clone tags later on - p = self.pages.create!( - :title => self.head.title, - :abstract => self.head.abstract, - :body => self.head.body - ) + p = self.pages.create! + + I18n.available_locales.each do |l| + next if l == :root + I18n.locale = l + + p.title = self.head.title + p.abstract = self.head.abstract + p.body = self.head.body + end + p.user = user p.save p diff --git a/config/locales/de.yml b/config/locales/de.yml new file mode 100644 index 0000000..3ddfada --- /dev/null +++ b/config/locales/de.yml @@ -0,0 +1,2 @@ +de: + hello: "Hello World" \ No newline at end of file diff --git a/test/unit/node_test.rb b/test/unit/node_test.rb index 937c3e0..d0c088e 100644 --- a/test/unit/node_test.rb +++ b/test/unit/node_test.rb @@ -11,6 +11,34 @@ class NodeTest < ActiveSupport::TestCase @user2 = User.create :login => 'show', :email => "f@b.com", :password => 'foobar', :password_confirmation => 'foobar' end + def test_cloning_a_head_page_to_a_new_draft_with_translations + assert_not_nil draft = @first_child.draft + I18n.locale = :de + draft.title = "Hallo" + draft.abstract = "Bitte" + draft.body = "Danke" + draft.save + I18n.locale = :en + draft.title = "Hello" + draft.abstract = "Please" + draft.body = "Thanks" + draft.save + + @first_child.publish_draft! + + draft1 = @first_child.find_or_create_draft(@user1) + + I18n.locale = :de + assert_equal "Hallo", draft1.title + assert_equal "Bitte", draft1.abstract + assert_equal "Danke", draft1.body + + I18n.locale = :en + assert_equal "Hello", draft1.title + assert_equal "Please", draft1.abstract + assert_equal "Thanks", draft1.body + end + def test_created_nodes_have_an_empty_draft_and_no_head node = Node.create :slug => "third_child" node.move_to_child_of @root -- cgit v1.3