simple_token_authentication 1.0.0.beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +674 -0
  3. data/README.md +134 -0
  4. data/Rakefile +32 -0
  5. data/lib/simple_token_authentication.rb +5 -0
  6. data/lib/simple_token_authentication/acts_as_token_authenticatable.rb +33 -0
  7. data/lib/simple_token_authentication/acts_as_token_authentication_handler.rb +68 -0
  8. data/lib/simple_token_authentication/version.rb +3 -0
  9. data/lib/tasks/simple_token_authentication_tasks.rake +4 -0
  10. data/test/dummy/README.rdoc +28 -0
  11. data/test/dummy/Rakefile +6 -0
  12. data/test/dummy/app/assets/javascripts/application.js +13 -0
  13. data/test/dummy/app/assets/javascripts/posts.js +2 -0
  14. data/test/dummy/app/assets/javascripts/private_posts.js +2 -0
  15. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  16. data/test/dummy/app/assets/stylesheets/posts.css +4 -0
  17. data/test/dummy/app/assets/stylesheets/private_posts.css +4 -0
  18. data/test/dummy/app/assets/stylesheets/scaffold.css +56 -0
  19. data/test/dummy/app/controllers/application_controller.rb +21 -0
  20. data/test/dummy/app/controllers/posts_controller.rb +62 -0
  21. data/test/dummy/app/controllers/private_posts_controller.rb +63 -0
  22. data/test/dummy/app/helpers/application_helper.rb +2 -0
  23. data/test/dummy/app/helpers/posts_helper.rb +2 -0
  24. data/test/dummy/app/helpers/private_posts_helper.rb +2 -0
  25. data/test/dummy/app/models/post.rb +3 -0
  26. data/test/dummy/app/models/private_post.rb +3 -0
  27. data/test/dummy/app/models/user.rb +2 -0
  28. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  29. data/test/dummy/app/views/posts/_form.html.erb +29 -0
  30. data/test/dummy/app/views/posts/edit.html.erb +6 -0
  31. data/test/dummy/app/views/posts/index.html.erb +31 -0
  32. data/test/dummy/app/views/posts/new.html.erb +5 -0
  33. data/test/dummy/app/views/posts/show.html.erb +19 -0
  34. data/test/dummy/app/views/private_posts/_form.html.erb +29 -0
  35. data/test/dummy/app/views/private_posts/edit.html.erb +6 -0
  36. data/test/dummy/app/views/private_posts/index.html.erb +31 -0
  37. data/test/dummy/app/views/private_posts/new.html.erb +5 -0
  38. data/test/dummy/app/views/private_posts/show.html.erb +19 -0
  39. data/test/dummy/bin/bundle +3 -0
  40. data/test/dummy/bin/rails +4 -0
  41. data/test/dummy/bin/rake +4 -0
  42. data/test/dummy/config.ru +4 -0
  43. data/test/dummy/config/application.rb +23 -0
  44. data/test/dummy/config/boot.rb +5 -0
  45. data/test/dummy/config/database.yml +25 -0
  46. data/test/dummy/config/environment.rb +5 -0
  47. data/test/dummy/config/environments/development.rb +29 -0
  48. data/test/dummy/config/environments/production.rb +80 -0
  49. data/test/dummy/config/environments/test.rb +36 -0
  50. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  51. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  52. data/test/dummy/config/initializers/indefinite_articlerize.rb +4 -0
  53. data/test/dummy/config/initializers/inflections.rb +16 -0
  54. data/test/dummy/config/initializers/mime_types.rb +5 -0
  55. data/test/dummy/config/initializers/secret_token.rb +12 -0
  56. data/test/dummy/config/initializers/session_store.rb +3 -0
  57. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  58. data/test/dummy/config/locales/en.yml +23 -0
  59. data/test/dummy/config/routes.rb +60 -0
  60. data/test/dummy/db/development.sqlite3 +0 -0
  61. data/test/dummy/db/migrate/20140107041016_create_posts.rb +11 -0
  62. data/test/dummy/db/migrate/20140107053025_create_users.rb +6 -0
  63. data/test/dummy/db/migrate/20140107064508_create_private_posts.rb +11 -0
  64. data/test/dummy/db/schema.rb +35 -0
  65. data/test/dummy/db/test.sqlite3 +0 -0
  66. data/test/dummy/lib/generators/rspec/controller/controller_generator.rb +33 -0
  67. data/test/dummy/lib/generators/rspec/helper/helper_generator.rb +15 -0
  68. data/test/dummy/lib/generators/rspec/model/model_generator.rb +22 -0
  69. data/test/dummy/lib/generators/rspec/scaffold/scaffold_generator.rb +192 -0
  70. data/test/dummy/lib/templates/rspec/controller/controller_spec.rb +16 -0
  71. data/test/dummy/lib/templates/rspec/controller/view_spec.rb +5 -0
  72. data/test/dummy/lib/templates/rspec/helper/helper_spec.rb +0 -0
  73. data/test/dummy/lib/templates/rspec/model/model_spec.rb +65 -0
  74. data/test/dummy/lib/templates/rspec/model/model_spec_backup.rb +19 -0
  75. data/test/dummy/lib/templates/rspec/scaffold/controller_spec.rb +168 -0
  76. data/test/dummy/lib/templates/rspec/scaffold/edit_spec.rb +31 -0
  77. data/test/dummy/lib/templates/rspec/scaffold/index_spec.rb +32 -0
  78. data/test/dummy/lib/templates/rspec/scaffold/new_spec.rb +30 -0
  79. data/test/dummy/lib/templates/rspec/scaffold/routing_spec.rb +39 -0
  80. data/test/dummy/lib/templates/rspec/scaffold/show_spec.rb +28 -0
  81. data/test/dummy/log/development.log +3437 -0
  82. data/test/dummy/log/test.log +22013 -0
  83. data/test/dummy/public/404.html +58 -0
  84. data/test/dummy/public/422.html +58 -0
  85. data/test/dummy/public/500.html +57 -0
  86. data/test/dummy/public/favicon.ico +0 -0
  87. data/test/dummy/spec/controllers/posts_controller_spec.rb +161 -0
  88. data/test/dummy/spec/controllers/private_posts_controller_spec.rb +41 -0
  89. data/test/dummy/spec/factories/posts.rb +11 -0
  90. data/test/dummy/spec/factories/private_posts.rb +11 -0
  91. data/test/dummy/spec/helpers/posts_helper_spec.rb +0 -0
  92. data/test/dummy/spec/helpers/private_posts_helper_spec.rb +0 -0
  93. data/test/dummy/spec/models/post_spec.rb +65 -0
  94. data/test/dummy/spec/models/private_post_spec.rb +65 -0
  95. data/test/dummy/spec/models/user_spec.rb +61 -0
  96. data/test/dummy/spec/requests/posts_spec.rb +16 -0
  97. data/test/dummy/spec/requests/private_posts_spec.rb +17 -0
  98. data/test/dummy/spec/routing/posts_routing_spec.rb +35 -0
  99. data/test/dummy/spec/routing/private_posts_routing_spec.rb +35 -0
  100. data/test/dummy/spec/spec_helper.rb +42 -0
  101. data/test/dummy/spec/support/factory_girl.rb +6 -0
  102. data/test/dummy/spec/views/posts/edit.html.erb_spec.rb +22 -0
  103. data/test/dummy/spec/views/posts/index.html.erb_spec.rb +26 -0
  104. data/test/dummy/spec/views/posts/new.html.erb_spec.rb +22 -0
  105. data/test/dummy/spec/views/posts/show.html.erb_spec.rb +19 -0
  106. data/test/dummy/spec/views/private_posts/edit.html.erb_spec.rb +22 -0
  107. data/test/dummy/spec/views/private_posts/index.html.erb_spec.rb +26 -0
  108. data/test/dummy/spec/views/private_posts/new.html.erb_spec.rb +22 -0
  109. data/test/dummy/spec/views/private_posts/show.html.erb_spec.rb +19 -0
  110. data/test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  111. data/test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  112. data/test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  113. data/test/dummy/tmp/cache/assets/test/sprockets/371bf96e99717688ed7313a0c53f4212 +0 -0
  114. data/test/dummy/tmp/cache/assets/test/sprockets/4050a4e5062ab95c9f32e9b6940821ea +0 -0
  115. data/test/dummy/tmp/cache/assets/test/sprockets/416150dc3ac35079c94273cc46e90aa6 +0 -0
  116. data/test/dummy/tmp/cache/assets/test/sprockets/5384ad85f52d3272dbc64d46ef3876a4 +0 -0
  117. data/test/dummy/tmp/cache/assets/test/sprockets/5f1a0d05e77ca8b9a1fc2a47e17a8174 +0 -0
  118. data/test/dummy/tmp/cache/assets/test/sprockets/6fc757c2c8329244ca95d6909865bbc2 +0 -0
  119. data/test/dummy/tmp/cache/assets/test/sprockets/87b209c0c9da28094a8d5581a21262c6 +0 -0
  120. data/test/dummy/tmp/cache/assets/test/sprockets/c85016e7bbd4f3adbb7635d01f85d39b +0 -0
  121. data/test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  122. data/test/dummy/tmp/cache/assets/test/sprockets/d066c004d1fd26ae76a61303a7a18145 +0 -0
  123. data/test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  124. data/test/dummy/tmp/cache/assets/test/sprockets/f56253b5f374fff1a33fbbc9881c9124 +0 -0
  125. data/test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  126. data/test/simple_token_authentication_test.rb +7 -0
  127. data/test/test_helper.rb +15 -0
  128. metadata +384 -0
@@ -0,0 +1,65 @@
1
+ require 'spec_helper'
2
+
3
+ describe PrivatePost do
4
+
5
+ # attributes
6
+
7
+ it "has a title" do
8
+ should respond_to :title
9
+ end
10
+
11
+ it "has a body" do
12
+ should respond_to :body
13
+ end
14
+
15
+ it "has a published" do
16
+ should respond_to :published
17
+ end
18
+
19
+ # associations
20
+
21
+ # Uncomment if your model has associations.
22
+ # See https://github.com/thoughtbot/shoulda
23
+ #
24
+ # it "belongs to a 'model'" do
25
+ # should belong_to :model
26
+ # end
27
+
28
+ # validations
29
+
30
+ # See https://github.com/thoughtbot/factory_girl
31
+ # This factory should only set the REQUIRED attributes.
32
+ it "has a valid factory" do
33
+ FactoryGirl.build(:private_post).should be_valid
34
+ end
35
+ #
36
+ # Uncomment if your model has required attributes.
37
+ # This factory should set no attributes and is useful when invalid
38
+ # attributes or objects are required.
39
+ # See FactoryGirl.attributes_for() documentation
40
+ #
41
+ it "has an invalid factory" do
42
+ FactoryGirl.build(:invalid_private_post).should_not be_valid
43
+ end
44
+
45
+ # Uncomment if your model has required attributes
46
+ #
47
+ # This is the BDD way of testing attributes presence validation
48
+ # See https://www.relishapp.com/rspec/rspec-rails/docs/model-specs/errors-on
49
+ #
50
+ # it "fails validation with no 'attribute'" do
51
+ # expect(PrivatePost.new).to have(1).error_on(:attribute)
52
+ # end
53
+ #
54
+ # And this is an alternative way, which takes advantage of factories,
55
+ # it's up to you to chose one, the other, or use both together.
56
+ #
57
+ it "requires a 'title'" do
58
+ FactoryGirl.build(:private_post, title: "").should_not be_valid
59
+ end
60
+
61
+ # methods
62
+
63
+ # Describe here you model methods behaviour.
64
+
65
+ end
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+
3
+ describe User do
4
+
5
+ # attributes
6
+
7
+ it "is defined" do
8
+ should respond_to :id
9
+ end
10
+
11
+ # it "has a name" do
12
+ # should respond_to :name
13
+ # end
14
+
15
+ # associations
16
+
17
+ # Uncomment if your model has associations.
18
+ # See https://github.com/thoughtbot/shoulda
19
+ #
20
+ # it "belongs to a 'model'" do
21
+ # should belong_to :model
22
+ # end
23
+
24
+ # validations
25
+
26
+ # See https://github.com/thoughtbot/factory_girl
27
+ # This factory should only set the REQUIRED attributes.
28
+ # it "has a valid factory" do
29
+ # FactoryGirl.build(:user).should be_valid
30
+ # end
31
+ #
32
+ # Uncomment if your model has required attributes.
33
+ # This factory should set no attributes and is useful when invalid
34
+ # attributes or objects are required.
35
+ # See FactoryGirl.attributes_for() documentation
36
+ #
37
+ # it "has an invalid factory" do
38
+ # FactoryGirl.build(:invalid_user).should_not be_valid
39
+ # end
40
+
41
+ # Uncomment if your model has required attributes
42
+ #
43
+ # This is the BDD way of testing attributes presence validation
44
+ # See https://www.relishapp.com/rspec/rspec-rails/docs/model-specs/errors-on
45
+ #
46
+ # it "fails validation with no 'attribute'" do
47
+ # expect(Post.new).to have(1).error_on(:attribute)
48
+ # end
49
+ #
50
+ # And this is an alternative way, which takes advantage of factories,
51
+ # it's up to you to chose one, the other, or use both together.
52
+ #
53
+ # it "requires a 'name'" do
54
+ # FactoryGirl.build(:user, name: "").should_not be_valid
55
+ # end
56
+
57
+ # methods
58
+
59
+ # Describe here you model methods behaviour.
60
+
61
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Posts" do
4
+ describe "GET /posts" do
5
+
6
+ context "since ApplicationController#acts_as_authentication_handler was NOT called" do
7
+
8
+ # See est/dummy/app/controllers/posts_controller.rb
9
+
10
+ it "does not require authentication" do
11
+ get posts_path
12
+ response.status.should be(200)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe "PrivatePosts" do
4
+ describe "GET /private_posts" do
5
+
6
+ context "since ApplicationController#acts_as_authentication_handler WAS called" do
7
+
8
+ # See est/dummy/app/controllers/private_posts_controller.rb
9
+
10
+ it "does require authentication" do
11
+ # `authenticate_user!` is configured to raise an exception when called,
12
+ # see test/dummy/app/controllers/application_controller.rb
13
+ lambda { get private_posts_path }.should raise_exception(RuntimeError)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,35 @@
1
+ require "spec_helper"
2
+
3
+ describe PostsController do
4
+ describe "routing" do
5
+
6
+ it "routes to #index" do
7
+ expect(:get => "/posts").to route_to("posts#index")
8
+ end
9
+
10
+ it "routes to #new" do
11
+ expect(:get => "/posts/new").to route_to("posts#new")
12
+ end
13
+
14
+ it "routes to #show" do
15
+ expect(:get => "/posts/1").to route_to("posts#show", :id => "1")
16
+ end
17
+
18
+ it "routes to #edit" do
19
+ expect(:get => "/posts/1/edit").to route_to("posts#edit", :id => "1")
20
+ end
21
+
22
+ it "routes to #create" do
23
+ expect(:post => "/posts").to route_to("posts#create")
24
+ end
25
+
26
+ it "routes to #update" do
27
+ expect(:put => "/posts/1").to route_to("posts#update", :id => "1")
28
+ end
29
+
30
+ it "routes to #destroy" do
31
+ expect(:delete => "/posts/1").to route_to("posts#destroy", :id => "1")
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ require "spec_helper"
2
+
3
+ describe PrivatePostsController do
4
+ describe "routing" do
5
+
6
+ it "routes to #index" do
7
+ expect(:get => "/private_posts").to route_to("private_posts#index")
8
+ end
9
+
10
+ it "routes to #new" do
11
+ expect(:get => "/private_posts/new").to route_to("private_posts#new")
12
+ end
13
+
14
+ it "routes to #show" do
15
+ expect(:get => "/private_posts/1").to route_to("private_posts#show", :id => "1")
16
+ end
17
+
18
+ it "routes to #edit" do
19
+ expect(:get => "/private_posts/1/edit").to route_to("private_posts#edit", :id => "1")
20
+ end
21
+
22
+ it "routes to #create" do
23
+ expect(:post => "/private_posts").to route_to("private_posts#create")
24
+ end
25
+
26
+ it "routes to #update" do
27
+ expect(:put => "/private_posts/1").to route_to("private_posts#update", :id => "1")
28
+ end
29
+
30
+ it "routes to #destroy" do
31
+ expect(:delete => "/private_posts/1").to route_to("private_posts#destroy", :id => "1")
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,42 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require File.expand_path("../../config/environment", __FILE__)
4
+ require 'rspec/rails'
5
+ require 'rspec/autorun'
6
+
7
+ # Requires supporting ruby files with custom matchers and macros, etc,
8
+ # in spec/support/ and its subdirectories.
9
+ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
10
+
11
+ # Checks for pending migrations before tests are run.
12
+ # If you are not using ActiveRecord, you can remove this line.
13
+ ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
14
+
15
+ RSpec.configure do |config|
16
+ # ## Mock Framework
17
+ #
18
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
19
+ #
20
+ # config.mock_with :mocha
21
+ # config.mock_with :flexmock
22
+ # config.mock_with :rr
23
+
24
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
25
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
26
+
27
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
28
+ # examples within a transaction, remove the following line or assign false
29
+ # instead of true.
30
+ config.use_transactional_fixtures = true
31
+
32
+ # If true, the base class of anonymous controllers will be inferred
33
+ # automatically. This will be the default behavior in future versions of
34
+ # rspec-rails.
35
+ config.infer_base_class_for_anonymous_controllers = false
36
+
37
+ # Run specs in random order to surface order dependencies. If you find an
38
+ # order dependency and want to debug it, you can fix the order by providing
39
+ # the seed, which is printed after each run.
40
+ # --seed 1234
41
+ config.order = "random"
42
+ end
@@ -0,0 +1,6 @@
1
+ # See https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md#configure-your-test-suite
2
+ require 'factory_girl_rails'
3
+
4
+ RSpec.configure do |config|
5
+ config.include FactoryGirl::Syntax::Methods
6
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe "posts/edit" do
4
+ before(:each) do
5
+ @post = assign(:post, stub_model(Post,
6
+ :title => "MyString",
7
+ :body => "MyText",
8
+ :published => false
9
+ ))
10
+ end
11
+
12
+ it "renders the edit post form" do
13
+ render
14
+
15
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
16
+ assert_select "form[action=?][method=?]", post_path(@post), "post" do
17
+ assert_select "input#post_title[name=?]", "post[title]"
18
+ assert_select "textarea#post_body[name=?]", "post[body]"
19
+ assert_select "input#post_published[name=?]", "post[published]"
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe "posts/index" do
4
+ before(:each) do
5
+ assign(:posts, [
6
+ stub_model(Post,
7
+ :title => "Title",
8
+ :body => "MyText",
9
+ :published => false
10
+ ),
11
+ stub_model(Post,
12
+ :title => "Title",
13
+ :body => "MyText",
14
+ :published => false
15
+ )
16
+ ])
17
+ end
18
+
19
+ it "renders a list of posts" do
20
+ render
21
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
22
+ assert_select "tr>td", :text => "Title".to_s, :count => 2
23
+ assert_select "tr>td", :text => "MyText".to_s, :count => 2
24
+ assert_select "tr>td", :text => false.to_s, :count => 2
25
+ end
26
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe "posts/new" do
4
+ before(:each) do
5
+ assign(:post, stub_model(Post,
6
+ :title => "MyString",
7
+ :body => "MyText",
8
+ :published => false
9
+ ).as_new_record)
10
+ end
11
+
12
+ it "renders new post form" do
13
+ render
14
+
15
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
16
+ assert_select "form[action=?][method=?]", posts_path, "post" do
17
+ assert_select "input#post_title[name=?]", "post[title]"
18
+ assert_select "textarea#post_body[name=?]", "post[body]"
19
+ assert_select "input#post_published[name=?]", "post[published]"
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe "posts/show" do
4
+ before(:each) do
5
+ @post = assign(:post, stub_model(Post,
6
+ :title => "Title",
7
+ :body => "MyText",
8
+ :published => false
9
+ ))
10
+ end
11
+
12
+ it "renders attributes in <p>" do
13
+ render
14
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
15
+ rendered.should match(/Title/)
16
+ rendered.should match(/MyText/)
17
+ rendered.should match(/false/)
18
+ end
19
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe "private_posts/edit" do
4
+ before(:each) do
5
+ @private_post = assign(:private_post, stub_model(PrivatePost,
6
+ :title => "MyString",
7
+ :body => "MyText",
8
+ :published => false
9
+ ))
10
+ end
11
+
12
+ it "renders the edit private_post form" do
13
+ render
14
+
15
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
16
+ assert_select "form[action=?][method=?]", private_post_path(@private_post), "post" do
17
+ assert_select "input#private_post_title[name=?]", "private_post[title]"
18
+ assert_select "textarea#private_post_body[name=?]", "private_post[body]"
19
+ assert_select "input#private_post_published[name=?]", "private_post[published]"
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe "private_posts/index" do
4
+ before(:each) do
5
+ assign(:private_posts, [
6
+ stub_model(PrivatePost,
7
+ :title => "Title",
8
+ :body => "MyText",
9
+ :published => false
10
+ ),
11
+ stub_model(PrivatePost,
12
+ :title => "Title",
13
+ :body => "MyText",
14
+ :published => false
15
+ )
16
+ ])
17
+ end
18
+
19
+ it "renders a list of private_posts" do
20
+ render
21
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
22
+ assert_select "tr>td", :text => "Title".to_s, :count => 2
23
+ assert_select "tr>td", :text => "MyText".to_s, :count => 2
24
+ assert_select "tr>td", :text => false.to_s, :count => 2
25
+ end
26
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe "private_posts/new" do
4
+ before(:each) do
5
+ assign(:private_post, stub_model(PrivatePost,
6
+ :title => "MyString",
7
+ :body => "MyText",
8
+ :published => false
9
+ ).as_new_record)
10
+ end
11
+
12
+ it "renders new private_post form" do
13
+ render
14
+
15
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
16
+ assert_select "form[action=?][method=?]", private_posts_path, "post" do
17
+ assert_select "input#private_post_title[name=?]", "private_post[title]"
18
+ assert_select "textarea#private_post_body[name=?]", "private_post[body]"
19
+ assert_select "input#private_post_published[name=?]", "private_post[published]"
20
+ end
21
+ end
22
+ end