language_adjoint_controller_test.rb revision ca68055161f6beb2ec248e789ab787e6de69bd18
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozatrequire 'test_helper'
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozatclass LanguageAdjointsControllerTest < ActionController::TestCase
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should_map_resources :language_adjoints,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :except => [:index]
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'Language Adjoint:' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat @user = FactoryGirl.create :user
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat @target_language = FactoryGirl.create :language, :user => @user
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat @source_language = FactoryGirl.create :language, :user => @user
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat @mapping = FactoryGirl.create :language_mapping, :source => @source_language, :target => @target_language, :user => @user
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat @target_language2 = FactoryGirl.create :language, :user => @user
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat @source_language2 = FactoryGirl.create :language, :user => @user
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat @mapping2 = FactoryGirl.create :language_mapping, :source => @source_language2, :target => @target_language2, :user => @user
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat @adjoint = FactoryGirl.create :language_adjoint, :translation => @mapping, :projection => @mapping2, :user => @user
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'signed in as owner' do
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat sign_in @user
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on get to show' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat get :show, :id => @adjoint.id, :mapping_id => @mapping.id
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should respond_with :success
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should assign_to :language_adjoint
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should render_template :show
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should_not set_the_flash
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on get to new' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
ba4c42597399c72fbb0b8f99e6ded79f738a6ac3Frederic Crozat get :new, :mapping_id => @mapping.id
ba4c42597399c72fbb0b8f99e6ded79f738a6ac3Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should respond_with :success
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should render_template :new
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on POST to CREATE' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat post :create, :language_mapping_id => @mapping.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :language_adjoint => {:translation_id => @mapping.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :projection_id => @mapping2.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :iri => 'http://test.de'
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat }
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should 'create the record' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat adjoint = LanguageAdjoint.find_by_iri('http://test.de')
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat assert !adjoint.nil?
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat assert_equal @mapping, adjoint.translation unless adjoint.nil?
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat assert_equal @mapping2, adjoint.projection unless adjoint.nil?
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on PUT to Update' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat put :update, :id => @adjoint.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :language_adjoint => {:translation_id => @mapping.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :projection_id => @mapping2.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :iri => "http://test2.de"
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat }
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should 'change the record' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat adjoint = LanguageAdjoint.find_by_iri('http://test2.de')
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat assert !adjoint.nil?
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat assert_equal @mapping, adjoint.translation unless adjoint.nil?
ba4c42597399c72fbb0b8f99e6ded79f738a6ac3Frederic Crozat assert_equal @mapping2, adjoint.projection unless adjoint.nil?
ba4c42597399c72fbb0b8f99e6ded79f738a6ac3Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on POST to DELETE' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat delete :destroy, :id => @adjoint.id, :mapping_id => @mapping.id
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should 'remove the record' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat assert_equal nil, LanguageAdjoint.find_by_id(@adjoint.id)
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on GET to EDIT' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat get :edit, :id => @adjoint.id, :mapping_id => @mapping.id
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should respond_with :success
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should assign_to :language_adjoint
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should render_template :edit
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should_not set_the_flash
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'signed in as not-owner' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat @user2 = FactoryGirl.create :user
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat sign_in @user2
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on get to show' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat get :show, :id => @adjoint.id, :mapping_id => @mapping.id
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat should respond_with :success
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should assign_to :language_adjoint
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat should render_template :show
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should_not set_the_flash
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on get to new' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat get :new, :mapping_id => @mapping.id
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat should respond_with :success
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should render_template :new
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on POST to CREATE' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat post :create, :language_mapping_id => @mapping.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :language_adjoint => {:translation_id => @mapping.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :projection_id => @mapping2.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :iri => 'http://test.de'
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat }
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat should "create the record" do
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat adjoint = LanguageAdjoint.find_by_iri("http://test.de")
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat assert !adjoint.nil?
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat assert_equal @mapping, adjoint.translation unless adjoint.nil?
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat assert_equal @mapping2, adjoint.projection unless adjoint.nil?
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on PUT to Update' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber put :update, :id => @adjoint.id,
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber :language_adjoint => {:translation_id => @mapping.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :projection_id => @mapping2.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :iri => "http://test2.de"
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat }
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat should "not change the record" do
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat adjoint = LanguageAdjoint.find_by_iri("http://test2.de")
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat assert_equal nil, adjoint
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat context "on POST to DELETE" do
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat setup do
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat delete :destroy, :id => @adjoint.id, :translation_id => @mapping.id
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat should "not remove the record" do
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat adjoint = LanguageAdjoint.find_by_id(@adjoint.id)
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat assert_equal @adjoint, adjoint
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat context "on GET to EDIT" do
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat setup do
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat get :edit, :id => @adjoint.id, :translation_id => @mapping.id
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat should respond_with :redirect
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat should set_the_flash.to(/not authorized/i)
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat context 'not signed in' do
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat context 'on get to show' do
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat get :show, :id => @adjoint.id, :translation_id => @mapping.id
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should respond_with :success
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat should assign_to :language_adjoint
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat should render_template :show
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat should_not set_the_flash
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber context 'on get to new' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat get :new, :translation_id => @mapping.id
44ee8a102e3d8052631fbb119f58a55ce678d039Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should respond_with :redirect
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat should set_the_flash
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on POST to CREATE' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat post :create, :language_mapping_id => @mapping.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :language_adjoint => {:translation_id => @mapping.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :projection_id => @mapping2.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :iri => 'http://test.de'
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat }
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat
6d8ac56b658a7aa35a46580c2df060c58ef02821Serge Hallyn should "not create the record" do
44d397891e691ab994a69766cc72e57265b62da1Serge Hallyn adjoint = LanguageAdjoint.find_by_iri("http://test.de")
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat assert_equal nil, adjoint
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat end
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat context 'on PUT to Update' do
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat setup do
e29bf450cafa2ce2564aeb0b64d2014c17228407Dwight Engen put :update, :id => @adjoint.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :language_adjoint => {:translation_id => @mapping.id,
e29bf450cafa2ce2564aeb0b64d2014c17228407Dwight Engen :projection_id => @mapping2.id,
c840b37de865195a8742e219b4374d961a21d4d9Frederic Crozat :iri => "http://test2.de"
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber }
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber end
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber should 'not change the record' do
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber adjoint = LanguageAdjoint.find_by_iri('http://test2.de')
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber assert_equal nil, adjoint
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber end
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber end
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber context 'on POST to DELETE' do
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber setup do
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber delete :destroy, :id => @adjoint.id, :translation_id => @mapping.id
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber end
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber should "not remove the record" do
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber assert_equal @adjoint, LanguageAdjoint.find_by_id(@adjoint.id)
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber end
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber end
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber end
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber end
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graberend
14d9c0f09d1a55d124ef210a4b4e205c9fe7596cStéphane Graber