Advertisement
Guest User

Untitled

a guest
Apr 26th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.33 KB | None | 0 0
  1. require File.dirname(__FILE__) + '/../test_helper'
  2.  
  3. class MovieAdministrationTest < ActionDispatch::IntegrationTest
  4.  
  5.   test "movie_aministration" do
  6.     producer = Producer.create(:name => 'Movies of Ruby')
  7.     director = Director.create(:first_name => 'John', :last_name => 'Anderson')
  8.     george = new_session_as(:george)
  9.  
  10.     new_movie_ruby = george.add_movie :movie => {
  11.       :title => 'A new Movie of Ruby',
  12.       :producer_id => producer.id,
  13.       :director_ids => [director.id],
  14.       :produced_at => Time.now,
  15.       :serial_number => '64214',
  16.       :blurb => 'A new Movie of Ruby',
  17.       :length => 325,
  18.       :price => 45.5
  19.     }
  20.  
  21.     george.list_movies
  22.     george.show_movie new_movie_ruby
  23.  
  24.     george.edit_movie new_movie_ruby, :movie => {
  25.       :title => 'A very new Movie of Ruby',
  26.       :producer_id => producer.id,
  27.       :director_ids => [director.id],
  28.       :produced_at => Time.now,
  29.       :serial_number => '43214',
  30.       :blurb => 'A very new Movie of Ruby',
  31.       :length => 350,
  32.       :price => 50
  33.     }
  34.  
  35.     bob = new_session_as(:bob)
  36.     bob.delete_movie new_movie_ruby
  37.   end
  38.  
  39.   private
  40.  
  41.   module MovieTestDSL
  42.     attr_writer :name
  43.  
  44.     def add_movie(parameters)
  45.       director = Director.first
  46.       producer = Producer.first
  47.       get '/admin/movie/new'
  48.       assert_response :success
  49.       assert_template 'admin/movie/new'
  50.       assert_select 'select#movie_producer_id' do
  51.         assert_select "option[value=\"#{producer.id}\"]", producer.name
  52.       end
  53.       # assert_tag :tag => 'option', :attributes => { :value => producer.id }
  54.       assert_select "select[name=\"movie[director_ids][]\"]" do
  55.         assert_select "option[value=\"#{director.id}\"]", director.name
  56.       end
  57.       # assert_tag :tag => 'select', :attributes => { :name => 'movie[director_ids][]' }
  58.      
  59.       post '/admin/movie/create', parameters
  60.       assert_response :redirect
  61.       follow_redirect!
  62.  
  63.       get '/admin/movie/index'
  64.       assert_response :success
  65.       assert_template 'admin/movie/index'
  66.       page = Movie.all.count / 5 + 1
  67.       get "/admin/movie/index/?page=#{page}"
  68.       assert_select 'td', parameters[:movie][:title]
  69.  
  70.       # assert_tag :tag => 'td', :content => parameters[:movie][:title]
  71.  
  72.       movie = Movie.find_by_title(parameters[:movie][:title])
  73.       return movie;
  74.     end
  75.  
  76.     def edit_movie(movie, parameters)
  77.       get "/admin/movie/edit?id=#{movie.id}"
  78.       assert_response :success
  79.       assert_template 'admin/movie/edit'
  80.       post "/admin/movie/update?id=#{movie.id}", parameters
  81.       assert_response :redirect
  82.       follow_redirect!
  83.       assert_response :success
  84.       assert_template 'admin/movie/show'
  85.     end
  86.  
  87.     def delete_movie(movie)
  88.       post "/admin/movie/destroy?id=#{movie.id}"
  89.       assert_response :redirect
  90.       follow_redirect!
  91.       assert_template 'admin/movie/index'
  92.     end
  93.  
  94.     def show_movie(movie)
  95.       get "/admin/movie/show/#{movie.id}"
  96.       assert_response :success
  97.       assert_template 'admin/movie/show'
  98.     end
  99.  
  100.     def list_movies
  101.       get '/admin/movie/index'
  102.       assert_response :success
  103.       assert_template 'admin/movie/index'
  104.     end
  105.   end
  106.  
  107.   def new_session_as(name)
  108.     open_session do |session|
  109.       session.extend(MovieTestDSL)
  110.       session.name = name
  111.       yield session if block_given?
  112.     end
  113.   end
  114. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement