Guest User

Untitled

a guest
May 2nd, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.79 KB | None | 0 0
  1.  
  2. functional
  3. functional/account_controller_test.rb
  4. functional/admin_controller_test.rb
  5. functional/ads_controller_test.rb
  6. functional/main_controller_test.rb
  7. test_helper.rb
  8. unit
  9. unit/ad_test.rb
  10. unit/author_test.rb
  11. unit/category_test.rb
  12. unit/mailman_test.rb
  13. unit/parent_category_test.rb
  14. unit/user_test.rb
  15.  
  16. -
  17.  
  18. /functional/account_controller_test.rb
  19.  
  20. require File.dirname(__FILE__) + '/../test_helper'
  21.  
  22. require 'account_controller'
  23.  
  24. class AccountController; def rescue_action(e) raise e end; end
  25.  
  26. class AccountControllerTest < Test::Unit::TestCase
  27.  
  28. include AuthenticatedTestHelper
  29.  
  30. fixtures :users
  31.  
  32. def setup
  33.  
  34. @controller AccountController.new
  35.  
  36. @request ActionController::TestRequest.new
  37.  
  38. @response ActionController::TestResponse.new
  39.  
  40. end
  41.  
  42. def test_should_login_and_redirect
  43.  
  44. post :login, :email > 'quentin@example.com', :password > 'test'
  45.  
  46. assert session[:user]
  47.  
  48. assert_response :redirect
  49.  
  50. end
  51.  
  52. def test_should_fail_login_and_not_redirect
  53.  
  54. post :login, :example > 'quentin@example', :password > 'bad password'
  55.  
  56. assert_nil session[:user]
  57.  
  58. assert_response :success
  59.  
  60. end
  61.  
  62. def test_should_allow_signup
  63.  
  64. assert_difference User, :count do
  65.  
  66. create_user
  67.  
  68. assert_response :redirect
  69.  
  70. end
  71.  
  72. end
  73.  
  74. def test_should_require_password_on_signup
  75.  
  76. assert_no_difference User, :count do
  77.  
  78. create_user(:password > nil)
  79.  
  80. assert assigns(:user).errors.on(:password)
  81.  
  82. assert_response :success
  83.  
  84. end
  85.  
  86. end
  87.  
  88. def test_should_require_password_confirmation_on_signup
  89.  
  90. assert_no_difference User, :count do
  91.  
  92. create_user(:password_confirmation > nil)
  93.  
  94. assert assigns(:user).errors.on(:password_confirmation)
  95.  
  96. assert_response :success
  97.  
  98. end
  99.  
  100. end
  101.  
  102. def test_should_require_email_on_signup
  103.  
  104. assert_no_difference User, :count do
  105.  
  106. create_user(:email > nil)
  107.  
  108. assert assigns(:user).errors.on(:email)
  109.  
  110. assert_response :success
  111.  
  112. end
  113.  
  114. end
  115.  
  116. def test_should_logout
  117.  
  118. login_as :quentin
  119.  
  120. get :logout
  121.  
  122. assert_nil session[:user]
  123.  
  124. assert_response :redirect
  125.  
  126. end
  127.  
  128. def test_should_remember_me
  129.  
  130. post :login, :email > 'quentin@example.com', :password > 'test', :remember_me > "1"
  131.  
  132. assert_not_nil @response.cookies["auth_token"]
  133.  
  134. end
  135.  
  136. def test_should_not_remember_me
  137.  
  138. post :login, :email > 'quentin@example.com', :password > 'test', :remember_me > "0"
  139.  
  140. assert_nil @response.cookies["auth_token"]
  141.  
  142. end
  143.  
  144. def test_should_delete_token_on_logout
  145.  
  146. login_as :quentin
  147.  
  148. get :logout
  149.  
  150. assert_equal @response.cookies["auth_token"], []
  151.  
  152. end
  153.  
  154. def test_should_login_with_cookie
  155.  
  156. users(:quentin).remember_me
  157.  
  158. @request.cookies["auth_token"] cookie_for(:quentin)
  159.  
  160. get :index
  161.  
  162. assert @controller.send(:logged_in?)
  163.  
  164. end
  165.  
  166. def test_should_fail_expired_cookie_login
  167.  
  168. users(:quentin).remember_me
  169.  
  170. users(:quentin).update_attribute :remember_token_expires_at, 5.minutes.ago
  171.  
  172. @request.cookies["auth_token"] cookie_for(:quentin)
  173.  
  174. get :index
  175.  
  176. assert !@controller.send(:logged_in?)
  177.  
  178. end
  179.  
  180. def test_should_fail_cookie_login
  181.  
  182. users(:quentin).remember_me
  183.  
  184. @request.cookies["auth_token"] auth_token('invalid_auth_token')
  185.  
  186. get :index
  187.  
  188. assert !@controller.send(:logged_in?)
  189.  
  190. end
  191.  
  192. protected
  193.  
  194. def create_user(options {})
  195.  
  196. post :signup, :user > { :email > 'quire@example.com',
  197.  
  198. :password > 'quire', :password_confirmation > 'quire' }.merge(options)
  199.  
  200. end
  201.  
  202. def auth_token(token)
  203.  
  204. CGI::Cookie.new('name' > 'auth_token', 'value' > token)
  205.  
  206. end
  207.  
  208. def cookie_for(user)
  209.  
  210. auth_token users(user).remember_token
  211.  
  212. end
  213.  
  214. end
  215.  
  216. -
  217.  
  218. /functional/admin_controller_test.rb
  219.  
  220. require File.dirname(__FILE__) + '/../test_helper'
  221.  
  222. class AdminControllerTest < ActionController::TestCase
  223.  
  224. def test_truth
  225.  
  226. assert true
  227.  
  228. end
  229.  
  230. end
  231.  
  232. -
  233.  
  234. /functional/ads_controller_test.rb
  235.  
  236. require File.dirname(__FILE__) + '/../test_helper'
  237.  
  238. class AdsControllerTest < ActionController::TestCase
  239.  
  240. def test_ad_post_and_email_sent
  241.  
  242. get :new, {:category > 1, :title > 'test', :ad > 'test ad'}
  243.  
  244. assert_response :success
  245.  
  246. end
  247.  
  248. def test_url_click_activates_post
  249.  
  250. assert true
  251.  
  252. end
  253.  
  254. end
  255.  
  256. -
  257.  
  258. /functional/main_controller_test.rb
  259.  
  260. require File.dirname(__FILE__) + '/../test_helper'
  261.  
  262. class MainControllerTest < ActionController::TestCase
  263.  
  264. def test_truth
  265.  
  266. assert true
  267.  
  268. end
  269.  
  270. end
  271.  
  272. -
  273.  
  274. /test_helper.rb
  275.  
  276. ENV["RAILS_ENV"] "test"
  277.  
  278. require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
  279.  
  280. require 'test_help'
  281.  
  282. class Test::Unit::TestCase
  283.  
  284. self.use_transactional_fixtures true
  285.  
  286. self.use_instantiated_fixtures false
  287.  
  288. fixtures :all
  289.  
  290. end
  291.  
  292. -
  293.  
  294. /unit/ad_test.rb
  295.  
  296. require File.dirname(__FILE__) + '/../test_helper'
  297.  
  298. class ClassifiedAdTest < ActiveSupport::TestCase
  299.  
  300. def test_ad_creation
  301.  
  302. ad Ad.create(:title > ads(:test_one).title)
  303.  
  304. assert ad.valid?
  305.  
  306. assert_equal(ads(:test_one).title, ad.title)
  307.  
  308. assert_equal(false, ad.active)
  309.  
  310. assert !ad.activation_hash.nil?
  311.  
  312. end
  313.  
  314. def test_email_generation_is_working
  315.  
  316. ad Ad.create(:title > ads(:test_one).title)
  317.  
  318. assert ad.valid?
  319.  
  320. assert_match(/^\d{18}@(chuckslist.com)$/i, ad.email)
  321.  
  322. end
  323.  
  324. def test_no_clash_in_generated_email_address
  325.  
  326. for count in (1..10000)
  327.  
  328. ad1 Ad.create(:title > 'Ad1')
  329.  
  330. ad2 Ad.create(:title > 'Ad2')
  331.  
  332. assert_not_equal(ad1.email, ad2.email)
  333.  
  334. end
  335.  
  336. end
  337.  
  338. def test_created_ads
  339.  
  340. end
  341.  
  342. end
  343.  
  344. -
  345.  
  346. /unit/author_test.rb
  347.  
  348. require File.dirname(__FILE__) + '/../test_helper'
  349.  
  350. class AuthorTest < ActiveSupport::TestCase
  351.  
  352. def test_truth
  353.  
  354. assert true
  355.  
  356. end
  357.  
  358. end
  359.  
  360. -
  361.  
  362. /unit/category_test.rb
  363.  
  364. require File.dirname(__FILE__) + '/../test_helper'
  365.  
  366. class CategoryTest < ActiveSupport::TestCase
  367.  
  368. def test_truth
  369.  
  370. assert true
  371.  
  372. end
  373.  
  374. end
  375.  
  376. -
  377.  
  378. /unit/mailman_test.rb
  379.  
  380. require File.dirname(__FILE__) + '/../test_helper'
  381.  
  382. class MailmanTest < ActionMailer::TestCase
  383.  
  384. tests Mailman
  385.  
  386. def test_email_fixture_is_working
  387.  
  388. email_text read_fixture("test_mail_001").join
  389.  
  390. assert_match(/jalopy/i, email_text)
  391.  
  392. end
  393.  
  394. def test_receive_email_is_working
  395.  
  396. email_text read_fixture("test_mail_001").join
  397.  
  398. response Mailman.receive(email_text)
  399.  
  400. assert_not_equal("200806159145300001@chuckslist.com", response.to[0])
  401.  
  402. assert_equal("quentin@example.com", response.to[0])
  403.  
  404. assert_equal("drspin_2003@hotmail.com", response.from[0])
  405.  
  406. assert_match(/jalopy/i, response.body)
  407.  
  408. assert_match(/Email delivered by Chuckslist/i, response.body)
  409.  
  410. end
  411.  
  412. def test_fake_email_is_garbaged
  413.  
  414. email_test read_fixture("test_mail_002").join
  415.  
  416. response Mailman.receive(email_test)
  417.  
  418. assert_not_equal("quentin@example.com", response.to[0])
  419.  
  420. assert_equal("garbage@chuckslist.org", response.to[0])
  421.  
  422. end
  423.  
  424. def test_regex_match_reply_to_ad_email
  425.  
  426. assert_match(/^\d{18}@(chuckslist.com)$/i, "200806159145300001@chuckslist.com")
  427.  
  428. end
  429.  
  430. def test_regex_match_ad_activation_email
  431.  
  432. assert_match(/^([a-zA-Z]{22}@(chuckslist.com))$/i, "abcdefghiJKLmnOPQrstUV@chuckslist.com")
  433.  
  434. end
  435.  
  436. def test_ad_confirmation_email_is_sent
  437.  
  438. end
  439.  
  440. def test_ad_confirmation_set_true_when_clicked
  441.  
  442. end
  443.  
  444. def test_ad_confirmation_email_is_working
  445.  
  446. end
  447.  
  448. end
  449.  
  450. -
  451.  
  452. /unit/parent_category_test.rb
  453.  
  454. require File.dirname(__FILE__) + '/../test_helper'
  455.  
  456. class ParentCategoryTest < ActiveSupport::TestCase
  457.  
  458. def test_truth
  459.  
  460. assert true
  461.  
  462. end
  463.  
  464. end
  465.  
  466. -
  467.  
  468. /unit/user_test.rb
  469.  
  470. require File.dirname(__FILE__) + '/../test_helper'
  471.  
  472. class UserTest < Test::Unit::TestCase
  473.  
  474. include AuthenticatedTestHelper
  475.  
  476. fixtures :users
  477.  
  478. def test_should_create_user
  479.  
  480. assert_difference User, :count do
  481.  
  482. user create_user
  483.  
  484. assert !user.new_record?, "#{user.errors.full_messages.to_sentence}"
  485.  
  486. end
  487.  
  488. end
  489.  
  490. def test_should_require_password
  491.  
  492. assert_no_difference User, :count do
  493.  
  494. u create_user(:password > nil)
  495.  
  496. assert u.errors.on(:password)
  497.  
  498. end
  499.  
  500. end
  501.  
  502. def test_should_require_password_confirmation
  503.  
  504. assert_no_difference User, :count do
  505.  
  506. u create_user(:password_confirmation > nil)
  507.  
  508. assert u.errors.on(:password_confirmation)
  509.  
  510. end
  511.  
  512. end
  513.  
  514. def test_should_require_email
  515.  
  516. assert_no_difference User, :count do
  517.  
  518. u create_user(:email > nil)
  519.  
  520. assert u.errors.on(:email)
  521.  
  522. end
  523.  
  524. end
  525.  
  526. def test_should_reset_password
  527.  
  528. users(:quentin).update_attributes(:password > 'new password', :password_confirmation > 'new password')
  529.  
  530. assert_equal users(:quentin), User.authenticate('quentin@example.com', 'new password')
  531.  
  532. end
  533.  
  534. def test_should_not_rehash_password
  535.  
  536. users(:quentin).update_attributes(:email > 'quentin2@example.com')
  537.  
  538. assert_equal users(:quentin), User.authenticate('quentin2@example.com', 'test')
  539.  
  540. end
  541.  
  542. def test_should_authenticate_user
  543.  
  544. assert_equal users(:quentin), User.authenticate('quentin@example.com', 'test')
  545.  
  546. end
  547.  
  548. def test_should_set_remember_token
  549.  
  550. users(:quentin).remember_me
  551.  
  552. assert_not_nil users(:quentin).remember_token
  553.  
  554. assert_not_nil users(:quentin).remember_token_expires_at
  555.  
  556. end
  557.  
  558. def test_should_unset_remember_token
  559.  
  560. users(:quentin).remember_me
  561.  
  562. assert_not_nil users(:quentin).remember_token
  563.  
  564. users(:quentin).forget_me
  565.  
  566. assert_nil users(:quentin).remember_token
  567.  
  568. end
  569.  
  570. protected
  571.  
  572. def create_user(options {})
  573.  
  574. User.create({ :email > 'quire@example.com', :password > 'quire', :password_confirmation > 'quire' }.merge(options))
  575.  
  576. end
  577.  
  578. end
Add Comment
Please, Sign In to add comment