survey_says 0.0.1

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 (180) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +65 -0
  3. data/Rakefile +39 -0
  4. data/app/assets/images/survey_says/sprites.png +0 -0
  5. data/app/assets/javascripts/bootstrap.js.coffee +21 -0
  6. data/app/assets/javascripts/survey_says/answer_form.js +42 -0
  7. data/app/assets/javascripts/survey_says.js +2 -0
  8. data/app/assets/stylesheets/survey_says/bootstrap.css +356 -0
  9. data/app/assets/stylesheets/survey_says/general.css.erb +138 -0
  10. data/app/assets/stylesheets/survey_says/sprite.css.erb +1 -0
  11. data/app/assets/stylesheets/survey_says.css +1 -0
  12. data/app/controllers/survey_admin/answers_controller.rb +64 -0
  13. data/app/controllers/survey_admin/base_controller.rb +15 -0
  14. data/app/controllers/survey_admin/questionnaires_controller.rb +44 -0
  15. data/app/controllers/survey_admin/questions_controller.rb +61 -0
  16. data/app/controllers/survey_admin/survey_properties_controller.rb +50 -0
  17. data/app/helpers/survey_admin/answers_helper.rb +2 -0
  18. data/app/helpers/survey_admin/questionnaires_helper.rb +2 -0
  19. data/app/helpers/survey_admin/questions_helper.rb +2 -0
  20. data/app/helpers/survey_admin/survey_properties_helper.rb +2 -0
  21. data/app/models/answer.rb +21 -0
  22. data/app/models/question.rb +11 -0
  23. data/app/models/questionnaire.rb +3 -0
  24. data/app/models/score.rb +12 -0
  25. data/app/models/survey_image.rb +29 -0
  26. data/app/models/survey_property.rb +5 -0
  27. data/app/models/user_answer.rb +6 -0
  28. data/app/views/layouts/survey_admin.html.erb +39 -0
  29. data/app/views/survey_admin/answers/_form.html.erb +49 -0
  30. data/app/views/survey_admin/answers/_score.html.erb +13 -0
  31. data/app/views/survey_admin/answers/_survey_image.html.erb +10 -0
  32. data/app/views/survey_admin/answers/edit.html.erb +12 -0
  33. data/app/views/survey_admin/answers/index.html.erb +61 -0
  34. data/app/views/survey_admin/answers/new.html.erb +8 -0
  35. data/app/views/survey_admin/answers/show.html.erb +38 -0
  36. data/app/views/survey_admin/questionnaires/_form.html.erb +8 -0
  37. data/app/views/survey_admin/questionnaires/edit.html.erb +11 -0
  38. data/app/views/survey_admin/questionnaires/index.html.erb +18 -0
  39. data/app/views/survey_admin/questionnaires/new.html.erb +8 -0
  40. data/app/views/survey_admin/questionnaires/show.html.erb +17 -0
  41. data/app/views/survey_admin/questions/_answer.html.erb +13 -0
  42. data/app/views/survey_admin/questions/_form.html.erb +52 -0
  43. data/app/views/survey_admin/questions/edit.html.erb +11 -0
  44. data/app/views/survey_admin/questions/index.html.erb +30 -0
  45. data/app/views/survey_admin/questions/new.html.erb +10 -0
  46. data/app/views/survey_admin/questions/show.html.erb +29 -0
  47. data/app/views/survey_admin/survey_properties/_form.html.erb +8 -0
  48. data/app/views/survey_admin/survey_properties/edit.html.erb +11 -0
  49. data/app/views/survey_admin/survey_properties/index.html.erb +19 -0
  50. data/app/views/survey_admin/survey_properties/new.html.erb +8 -0
  51. data/app/views/survey_admin/survey_properties/show.html.erb +12 -0
  52. data/config/routes.rb +17 -0
  53. data/db/development.sqlite3 +0 -0
  54. data/db/migrate/20111208181247_create_questions.rb +11 -0
  55. data/db/migrate/20111208181414_create_answers.rb +14 -0
  56. data/db/migrate/20111208181429_create_survey_properties.rb +9 -0
  57. data/db/migrate/20111208181449_create_scores.rb +15 -0
  58. data/db/migrate/20111211175518_create_user_answers.rb +12 -0
  59. data/db/migrate/20111211175604_create_questionnaires.rb +8 -0
  60. data/db/migrate/20111211180011_add_questionaire_id_to_questions.rb +7 -0
  61. data/db/migrate/20111213185612_create_survey_images.rb +15 -0
  62. data/lib/generators/survey_models_generator.rb +32 -0
  63. data/lib/generators/survey_says_generator.rb +60 -0
  64. data/lib/survey_says/acts_as_survey_says.rb +59 -0
  65. data/lib/survey_says/core_ext.rb +0 -0
  66. data/lib/survey_says/engine.rb +4 -0
  67. data/lib/survey_says/version.rb +3 -0
  68. data/lib/survey_says.rb +7 -0
  69. data/lib/tasks/survey_says_tasks.rake +4 -0
  70. data/test/acts_as_survey_test.rb +87 -0
  71. data/test/dummy/Rakefile +7 -0
  72. data/test/dummy/app/assets/javascripts/application.js +12 -0
  73. data/test/dummy/app/assets/stylesheets/application.css +10 -0
  74. data/test/dummy/app/controllers/application_controller.rb +3 -0
  75. data/test/dummy/app/helpers/application_helper.rb +2 -0
  76. data/test/dummy/app/helpers/error_messages_helper.rb +23 -0
  77. data/test/dummy/app/helpers/layout_helper.rb +22 -0
  78. data/test/dummy/app/views/layouts/application.html.erb +19 -0
  79. data/test/dummy/config/application.rb +45 -0
  80. data/test/dummy/config/boot.rb +10 -0
  81. data/test/dummy/config/database.yml +25 -0
  82. data/test/dummy/config/environment.rb +5 -0
  83. data/test/dummy/config/environments/development.rb +39 -0
  84. data/test/dummy/config/environments/production.rb +69 -0
  85. data/test/dummy/config/environments/test.rb +48 -0
  86. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  87. data/test/dummy/config/initializers/inflections.rb +10 -0
  88. data/test/dummy/config/initializers/mime_types.rb +5 -0
  89. data/test/dummy/config/initializers/secret_token.rb +7 -0
  90. data/test/dummy/config/initializers/session_store.rb +8 -0
  91. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  92. data/test/dummy/config/locales/en.yml +5 -0
  93. data/test/dummy/config/routes.rb +58 -0
  94. data/test/dummy/config.ru +4 -0
  95. data/test/dummy/db/development.sqlite3 +0 -0
  96. data/test/dummy/db/migrate/20111010112000_create_users.rb +7 -0
  97. data/test/dummy/db/schema.rb +82 -0
  98. data/test/dummy/db/test.sqlite3 +0 -0
  99. data/test/dummy/log/development.log +11108 -0
  100. data/test/dummy/log/test.log +12731 -0
  101. data/test/dummy/public/404.html +26 -0
  102. data/test/dummy/public/422.html +26 -0
  103. data/test/dummy/public/500.html +26 -0
  104. data/test/dummy/public/assets/products/1/large/image01.jpg +0 -0
  105. data/test/dummy/public/assets/products/1/mini/image01.jpg +0 -0
  106. data/test/dummy/public/assets/products/1/original/image01.jpg +0 -0
  107. data/test/dummy/public/assets/products/1/product/image01.jpg +0 -0
  108. data/test/dummy/public/assets/products/1/small/image01.jpg +0 -0
  109. data/test/dummy/public/assets/products/2/large/delete.png +0 -0
  110. data/test/dummy/public/assets/products/2/mini/delete.png +0 -0
  111. data/test/dummy/public/assets/products/2/original/delete.png +0 -0
  112. data/test/dummy/public/assets/products/2/product/delete.png +0 -0
  113. data/test/dummy/public/assets/products/2/small/delete.png +0 -0
  114. data/test/dummy/public/favicon.ico +0 -0
  115. data/test/dummy/public/stylesheets/application.css +83 -0
  116. data/test/dummy/script/rails +6 -0
  117. data/test/dummy/tmp/cache/assets/BF8/2D0/sprockets%2F061365584f62ff829333e404d3566614 +0 -0
  118. data/test/dummy/tmp/cache/assets/C17/0E0/sprockets%2F976726a8626e66694980f590bc387807 +0 -0
  119. data/test/dummy/tmp/cache/assets/C4B/B20/sprockets%2F75e3756ba610340b7d9e0501e2738815 +0 -0
  120. data/test/dummy/tmp/cache/assets/C74/4F0/sprockets%2F2b3933c1c8b63193cbf460019680641c +0 -0
  121. data/test/dummy/tmp/cache/assets/C8B/250/sprockets%2F1a17d2874364d2e99677211577ccbd29 +0 -0
  122. data/test/dummy/tmp/cache/assets/CBA/690/sprockets%2F4b4be759f94f48654023ccf82558c202 +0 -0
  123. data/test/dummy/tmp/cache/assets/CD1/FA0/sprockets%2F887d02a66c0be114c4d845e0e31b5046 +0 -0
  124. data/test/dummy/tmp/cache/assets/CDE/2F0/sprockets%2F01f7a04861b8d5c6ff5259b931b513a8 +0 -0
  125. data/test/dummy/tmp/cache/assets/CDE/990/sprockets%2Fd076ad241795a6dce56456d661c3c540 +0 -0
  126. data/test/dummy/tmp/cache/assets/CE8/960/sprockets%2F055e1879b589151f8c914fd4d2faa451 +0 -0
  127. data/test/dummy/tmp/cache/assets/CEA/E30/sprockets%2F3b6e44c89e8821a8ade264ba89536306 +0 -0
  128. data/test/dummy/tmp/cache/assets/CFB/EC0/sprockets%2F7b68fde8e3e0b2496451649499a339fd +0 -0
  129. data/test/dummy/tmp/cache/assets/D0A/650/sprockets%2F3892c73640ba239ad055eb70adc7d376 +0 -0
  130. data/test/dummy/tmp/cache/assets/D1A/400/sprockets%2F3db3e35d06c8ee7eea759a5561609176 +0 -0
  131. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  132. data/test/dummy/tmp/cache/assets/D35/7F0/sprockets%2Fb0bf073fb61c9ab736703d17e7223d7c +0 -0
  133. data/test/dummy/tmp/cache/assets/D39/260/sprockets%2F1c93edd8921f9c9dd8f9b391a8576996 +0 -0
  134. data/test/dummy/tmp/cache/assets/D44/8F0/sprockets%2Fd4882ae3d2b7e5c4a792a962b96d0c53 +0 -0
  135. data/test/dummy/tmp/cache/assets/D45/380/sprockets%2Fdcec95a29ee086a4283091e0671cee84 +0 -0
  136. data/test/dummy/tmp/cache/assets/D4F/990/sprockets%2F448cea593d65f06453fd58c813be85ec +0 -0
  137. data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +0 -0
  138. data/test/dummy/tmp/cache/assets/D5C/B80/sprockets%2F25fb254ba6af4c046abe0d457470b6b4 +0 -0
  139. data/test/dummy/tmp/cache/assets/D5F/B70/sprockets%2F7df07cffaafc819374564f89a9779d33 +0 -0
  140. data/test/dummy/tmp/cache/assets/D6A/A80/sprockets%2F65d4f0c9709bb65e6f0d20c4d33f6bd0 +0 -0
  141. data/test/dummy/tmp/cache/assets/D7D/470/sprockets%2Fc4f8c42e5a8d6a013a72e1e4dee99879 +0 -0
  142. data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
  143. data/test/dummy/tmp/cache/assets/D90/570/sprockets%2Fc28a3557e8dc87e9666afd75e7a578fa +0 -0
  144. data/test/dummy/tmp/cache/assets/D9F/AA0/sprockets%2F5faefd4c3b0d325d6046fc76bc634f93 +0 -0
  145. data/test/dummy/tmp/cache/assets/DA9/CA0/sprockets%2F65298b70d60c89a7fc08cea4dee62f2d +0 -0
  146. data/test/dummy/tmp/cache/assets/DE4/230/sprockets%2F2edbb30dab2c30af6660456f54aca6cb +0 -0
  147. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  148. data/test/dummy/tmp/cache/assets/E06/600/sprockets%2Fe4ef2dbc6691ad7f906b8cbca636e45d +0 -0
  149. data/test/dummy/tmp/cache/assets/E23/5C0/sprockets%2Ffdb40ef1a5e8bbeda0c5732a545cc8f3 +0 -0
  150. data/test/dummy/tmp/cache/assets/E36/A40/sprockets%2Fbb57cff6dedd610b280b8fbfd9285b5f +0 -0
  151. data/test/factories/answers.rb +6 -0
  152. data/test/factories/questionnaires.rb +3 -0
  153. data/test/factories/questions.rb +12 -0
  154. data/test/factories/scores.rb +5 -0
  155. data/test/factories/survey_images.rb +9 -0
  156. data/test/factories/survey_properties.rb +3 -0
  157. data/test/factories/user_answers.rb +4 -0
  158. data/test/factories/users.rb +3 -0
  159. data/test/fixtures/answers.yml +13 -0
  160. data/test/fixtures/questionnaires.yml +7 -0
  161. data/test/fixtures/questions.yml +11 -0
  162. data/test/fixtures/scores.yml +11 -0
  163. data/test/fixtures/survey_images.yml +19 -0
  164. data/test/fixtures/survey_properties.yml +7 -0
  165. data/test/fixtures/user_answers.yml +9 -0
  166. data/test/functional/survey_admin/answers_controller_test.rb +71 -0
  167. data/test/functional/survey_admin/questionnaires_controller_test.rb +52 -0
  168. data/test/functional/survey_admin/questions_controller_test.rb +61 -0
  169. data/test/functional/survey_admin/survey_properties_controller_test.rb +59 -0
  170. data/test/integration/navigation_test.rb +10 -0
  171. data/test/survey_says_test.rb +7 -0
  172. data/test/test_helper.rb +16 -0
  173. data/test/unit/answer_test.rb +12 -0
  174. data/test/unit/question_test.rb +7 -0
  175. data/test/unit/questionaire_test.rb +7 -0
  176. data/test/unit/score_test.rb +7 -0
  177. data/test/unit/survey_image_test.rb +7 -0
  178. data/test/unit/survey_property_test.rb +7 -0
  179. data/test/unit/user_answer_test.rb +7 -0
  180. metadata +420 -0
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ <p>We've been notified about this issue and we'll take a look at it shortly.</p>
24
+ </div>
25
+ </body>
26
+ </html>
File without changes
@@ -0,0 +1,83 @@
1
+ html, body {
2
+ background-color: #4B7399;
3
+ font-family: Verdana, Helvetica, Arial;
4
+ font-size: 14px;
5
+ }
6
+
7
+ a img {
8
+ border: none;
9
+ }
10
+
11
+ a {
12
+ color: #0000FF;
13
+ }
14
+
15
+ .clear {
16
+ clear: both;
17
+ height: 0;
18
+ overflow: hidden;
19
+ }
20
+
21
+ #container {
22
+ width: 75%;
23
+ margin: 0 auto;
24
+ background-color: #FFF;
25
+ padding: 20px 40px;
26
+ border: solid 1px black;
27
+ margin-top: 20px;
28
+ }
29
+
30
+ #flash_notice, #flash_error, #flash_alert {
31
+ padding: 5px 8px;
32
+ margin: 10px 0;
33
+ }
34
+
35
+ #flash_notice {
36
+ background-color: #CFC;
37
+ border: solid 1px #6C6;
38
+ }
39
+
40
+ #flash_error, #flash_alert {
41
+ background-color: #FCC;
42
+ border: solid 1px #C66;
43
+ }
44
+
45
+ .error_messages {
46
+ width: 400px;
47
+ border: 2px solid #CF0000;
48
+ padding: 0px;
49
+ padding-bottom: 12px;
50
+ margin-bottom: 20px;
51
+ background-color: #f0f0f0;
52
+ font-size: 12px;
53
+ }
54
+
55
+ .error_messages h2 {
56
+ text-align: left;
57
+ font-weight: bold;
58
+ padding: 5px 10px;
59
+ font-size: 12px;
60
+ margin: 0;
61
+ background-color: #c00;
62
+ color: #fff;
63
+ }
64
+
65
+ .error_messages p {
66
+ margin: 8px 10px;
67
+ }
68
+
69
+ .error_messages ul {
70
+ margin: 0;
71
+ }
72
+
73
+ .field_with_errors {
74
+ display: inline;
75
+ }
76
+
77
+ form .field, form .actions {
78
+ margin: 10px 0;
79
+ }
80
+
81
+ form label {
82
+ display: block;
83
+ }
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,6 @@
1
+ Factory.define :answer do |s|
2
+ s.question { |c| c.association(:question) }
3
+ s.details 'Johns answer'
4
+ s.active true
5
+ s.position 1
6
+ end
@@ -0,0 +1,3 @@
1
+ Factory.define :questionnaire do |s|
2
+ s.name 'John'
3
+ end
@@ -0,0 +1,12 @@
1
+ Factory.define :question do |s|
2
+ s.details 'John'
3
+ s.active true
4
+ s.position 1
5
+ end
6
+
7
+ Factory.define :question_with_questionnaire, :parent => :question do |s|
8
+ s.questionnaire { |c| c.association(:questionnaire) }
9
+ s.details 'John with questionaire'
10
+ s.active true
11
+ s.position 2
12
+ end
@@ -0,0 +1,5 @@
1
+ Factory.define :score do |s|
2
+ s.answer { |c| c.association(:answer) }
3
+ s.survey_property { |c| c.association(:survey_property) }
4
+ s.value 1
5
+ end
@@ -0,0 +1,9 @@
1
+
2
+ Factory.define :survey_image do |s|
3
+ s.imageable { |c| c.association(:answer) }
4
+ s.position 1
5
+ s.photo_file_name 'My-file-name'
6
+ s.photo_content_type: 'image/jpeg'
7
+ s.photo_file_size: 1
8
+ s.caption: 'My caption... '
9
+ end
@@ -0,0 +1,3 @@
1
+ Factory.define :survey_property do |s|
2
+ s.name 'John'
3
+ end
@@ -0,0 +1,4 @@
1
+ Factory.define :user_answer do |s|
2
+ s.user { |c| c.association(:user) }
3
+ s.answer { |c| c.association(:answer) }
4
+ end
@@ -0,0 +1,3 @@
1
+ Factory.define :user do |s|
2
+ s.name "Dave"
3
+ end
@@ -0,0 +1,13 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ question_id: 1
5
+ details: MyText
6
+ active: true
7
+ position: 1
8
+
9
+ two:
10
+ question_id: 1
11
+ details: MyText
12
+ active: false
13
+ position: 2
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ name: MyString
5
+
6
+ two:
7
+ name: MyString
@@ -0,0 +1,11 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ details: MyText
5
+ active: true
6
+ position: 1
7
+
8
+ two:
9
+ details: MyText
10
+ active: false
11
+ position: 2
@@ -0,0 +1,11 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ answer_id: 1
5
+ survey_property_id: 1
6
+ value: 1
7
+
8
+ two:
9
+ answer_id: 1
10
+ survey_property_id: 1
11
+ value: 1
@@ -0,0 +1,19 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ imageable_id: 1
5
+ imageable_type: MyString
6
+ position: 1
7
+ photo_file_name: MyString
8
+ photo_content_type: MyString
9
+ photo_file_size: 1
10
+ caption: MyString
11
+
12
+ two:
13
+ imageable_id: 1
14
+ imageable_type: MyString
15
+ position: 1
16
+ photo_file_name: MyString
17
+ photo_content_type: MyString
18
+ photo_file_size: 1
19
+ caption: MyString
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ name: MyString
5
+
6
+ two:
7
+ name: MyString
@@ -0,0 +1,9 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ user_id: 1
5
+ answer_id: 1
6
+
7
+ two:
8
+ user_id: 1
9
+ answer_id: 1
@@ -0,0 +1,71 @@
1
+ require 'test_helper'
2
+
3
+ class SurveyAdmin::AnswersControllerTest < ActionController::TestCase
4
+ def test_index
5
+ @question = Factory(:question)
6
+ @answer = Factory(:answer, :question => @question)
7
+ get :index, :question_id => @question.id
8
+ assert_template 'index'
9
+ end
10
+
11
+ def test_show
12
+ @question = Factory(:question)
13
+ @answer = Factory(:answer, :question => @question)
14
+ get :show, :id => @answer.id, :question_id => @question.id
15
+ assert_template 'show'
16
+ end
17
+
18
+ def test_new
19
+ @question = Factory(:question)
20
+ @answer = Factory(:answer, :question => @question)
21
+ get :new, :question_id => @question.id
22
+ assert_template 'new'
23
+ end
24
+
25
+ def test_create_invalid
26
+ @question = Factory(:question)
27
+ @answer = Factory(:answer, :question => @question)
28
+ Answer.any_instance.stubs(:valid?).returns(false)
29
+ post :create, :question_id => @question.id
30
+ assert_template 'new'
31
+ end
32
+
33
+ def test_create_valid
34
+ @question = Factory(:question)
35
+ @answer = Factory(:answer, :question => @question)
36
+ Answer.any_instance.stubs(:valid?).returns(true)
37
+ post :create, :question_id => @question.id
38
+ assert_redirected_to survey_admin_question_answer_url(assigns(:answer).question ,assigns(:answer))
39
+ end
40
+
41
+ def test_edit
42
+ @question = Factory(:question)
43
+ @answer = Factory(:answer, :question => @question)
44
+ get :edit, :id => @answer.id, :question_id => @question.id
45
+ assert_template 'edit'
46
+ end
47
+
48
+ def test_update_invalid
49
+ @question = Factory(:question)
50
+ @answer = Factory(:answer, :question => @question)
51
+ Answer.any_instance.stubs(:valid?).returns(false)
52
+ put :update, :id => @answer.id, :question_id => @question.id
53
+ assert_template 'edit'
54
+ end
55
+
56
+ def test_update_valid
57
+ @question = Factory(:question)
58
+ @answer = Factory(:answer, :question => @question)
59
+ Answer.any_instance.stubs(:valid?).returns(true)
60
+ put :update, :id => @answer.id, :question_id => @question.id
61
+ assert_redirected_to survey_admin_question_answer_url(assigns(:answer).question,assigns(:answer))
62
+ end
63
+
64
+ def test_destroy
65
+ @question = Factory(:question)
66
+ answer = Factory(:answer, :question => @question)
67
+ delete :destroy, :id => answer, :question_id => @question.id
68
+ assert_redirected_to survey_admin_question_answers_url(@question)
69
+ assert !Answer.find(answer.id).active
70
+ end
71
+ end
@@ -0,0 +1,52 @@
1
+ require 'test_helper'
2
+
3
+ class SurveyAdmin::QuestionnairesControllerTest < ActionController::TestCase
4
+ def test_index
5
+ questionnaire = Factory(:questionnaire)
6
+ get :index
7
+ assert_template 'index'
8
+ end
9
+
10
+ def test_show
11
+ questionnaire = Factory(:questionnaire)
12
+ get :show, :id => questionnaire.id
13
+ assert_template 'show'
14
+ end
15
+
16
+ def test_new
17
+ get :new
18
+ assert_template 'new'
19
+ end
20
+
21
+ def test_create_invalid
22
+ Questionnaire.any_instance.stubs(:valid?).returns(false)
23
+ post :create
24
+ assert_template 'new'
25
+ end
26
+
27
+ def test_create_valid
28
+ Questionnaire.any_instance.stubs(:valid?).returns(true)
29
+ post :create, :questionnaire => { :name => 'Johnny!'}
30
+ assert_redirected_to survey_admin_questionnaire_url(assigns(:questionnaire))
31
+ end
32
+
33
+ def test_edit
34
+ questionnaire = Factory(:questionnaire)
35
+ get :edit, :id => questionnaire.id
36
+ assert_template 'edit'
37
+ end
38
+
39
+ def test_update_invalid
40
+ questionnaire = Factory(:questionnaire)
41
+ Questionnaire.any_instance.stubs(:valid?).returns(false)
42
+ put :update, :id => questionnaire.id
43
+ assert_template 'edit'
44
+ end
45
+
46
+ def test_update_valid
47
+ questionnaire = Factory(:questionnaire)
48
+ Questionnaire.any_instance.stubs(:valid?).returns(true)
49
+ put :update, :id => questionnaire.id
50
+ assert_redirected_to survey_admin_questionnaire_url(assigns(:questionnaire))
51
+ end
52
+ end
@@ -0,0 +1,61 @@
1
+ require 'test_helper'
2
+
3
+ class SurveyAdmin::QuestionsControllerTest < ActionController::TestCase
4
+ #fixtures :questions
5
+
6
+ def test_index
7
+ get :index
8
+ assert_template 'index'
9
+ end
10
+
11
+ def test_show
12
+ question = Factory(:question)
13
+ get :show, :id => question.id
14
+ assert_template 'show'
15
+ end
16
+
17
+ def test_new
18
+ get :new
19
+ assert_template 'new'
20
+ end
21
+
22
+ def test_create_invalid
23
+ Question.any_instance.stubs(:valid?).returns(false)
24
+ post :create
25
+ assert_template 'new'
26
+ end
27
+
28
+ def test_create_valid
29
+ Question.any_instance.stubs(:valid?).returns(true)
30
+ post :create
31
+ assert_redirected_to survey_admin_question_answers_url(assigns(:question))
32
+ end
33
+
34
+ def test_edit
35
+ question = Factory(:question)
36
+ get :edit, :id => question.id
37
+ assert_template 'edit'
38
+ end
39
+
40
+ def test_update_invalid
41
+ question = Factory(:question)
42
+ Question.any_instance.stubs(:valid?).returns(false)
43
+ put :update, :id => question.id
44
+ assert_template 'edit'
45
+ end
46
+
47
+ def test_update_valid
48
+ question = Factory(:question)
49
+ Question.any_instance.stubs(:valid?).returns(true)
50
+ put :update, :id => question.id
51
+ assert_redirected_to survey_admin_question_answers_url(assigns(:question))
52
+ end
53
+
54
+ def test_destroy
55
+ question = Factory(:question)
56
+ delete :destroy, :id => question.id
57
+ assert_redirected_to survey_admin_questions_url
58
+ assert Question.exists?(question.id)
59
+ assert !Question.find(question.id).active
60
+ end
61
+ end