admin_assistant 1.0.1 → 1.0.2
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.
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/admin_assistant.gemspec +1 -285
- metadata +3 -287
- data/test_rails_app/README +0 -256
- data/test_rails_app/Rakefile +0 -13
- data/test_rails_app/app/controllers/admin/appointments2_controller.rb +0 -15
- data/test_rails_app/app/controllers/admin/appointments_controller.rb +0 -11
- data/test_rails_app/app/controllers/admin/blog_posts2_controller.rb +0 -138
- data/test_rails_app/app/controllers/admin/blog_posts3_controller.rb +0 -76
- data/test_rails_app/app/controllers/admin/blog_posts4_controller.rb +0 -21
- data/test_rails_app/app/controllers/admin/blog_posts5_controller.rb +0 -27
- data/test_rails_app/app/controllers/admin/blog_posts6_controller.rb +0 -10
- data/test_rails_app/app/controllers/admin/blog_posts_controller.rb +0 -8
- data/test_rails_app/app/controllers/admin/blog_posts_custom_new_and_edit_controller.rb +0 -15
- data/test_rails_app/app/controllers/admin/blog_posts_read_only_controller.rb +0 -19
- data/test_rails_app/app/controllers/admin/bookmarks_controller.rb +0 -11
- data/test_rails_app/app/controllers/admin/comments2_controller.rb +0 -14
- data/test_rails_app/app/controllers/admin/comments_controller.rb +0 -12
- data/test_rails_app/app/controllers/admin/file_column_images2_controller.rb +0 -10
- data/test_rails_app/app/controllers/admin/file_column_images_controller.rb +0 -6
- data/test_rails_app/app/controllers/admin/images2_controller.rb +0 -11
- data/test_rails_app/app/controllers/admin/images_controller.rb +0 -6
- data/test_rails_app/app/controllers/admin/misconfigured1_controller.rb +0 -7
- data/test_rails_app/app/controllers/admin/not_migrated_yets_controller.rb +0 -9
- data/test_rails_app/app/controllers/admin/product_categories2_controller.rb +0 -7
- data/test_rails_app/app/controllers/admin/product_categories_controller.rb +0 -5
- data/test_rails_app/app/controllers/admin/products2_controller.rb +0 -15
- data/test_rails_app/app/controllers/admin/products_controller.rb +0 -31
- data/test_rails_app/app/controllers/admin/television_airings_controller.rb +0 -5
- data/test_rails_app/app/controllers/admin/television_time_slots_controller.rb +0 -5
- data/test_rails_app/app/controllers/admin/users2_controller.rb +0 -10
- data/test_rails_app/app/controllers/admin/users_controller.rb +0 -63
- data/test_rails_app/app/controllers/application.rb +0 -16
- data/test_rails_app/app/controllers/application_controller.rb +0 -16
- data/test_rails_app/app/controllers/blog_posts_controller.rb +0 -5
- data/test_rails_app/app/helpers/admin/appointments2_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/appointments_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/blog_posts2_helper.rb +0 -27
- data/test_rails_app/app/helpers/admin/blog_posts3_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/blog_posts4_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/blog_posts6_helper.rb +0 -16
- data/test_rails_app/app/helpers/admin/blog_posts_custom_new_and_edit_helper.rb +0 -29
- data/test_rails_app/app/helpers/admin/blog_posts_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/blog_posts_read_only_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/bookmarks_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/comments2_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/comments_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/file_column_images2_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/file_column_images_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/images2_helper.rb +0 -8
- data/test_rails_app/app/helpers/admin/images_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/misconfigured1_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/not_migrated_yets_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/product_categories2_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/product_categories_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/products2_helper.rb +0 -3
- data/test_rails_app/app/helpers/admin/products_helper.rb +0 -6
- data/test_rails_app/app/helpers/admin/television_airings_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/television_time_slots_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/users2_helper.rb +0 -2
- data/test_rails_app/app/helpers/admin/users_helper.rb +0 -25
- data/test_rails_app/app/helpers/application_helper.rb +0 -3
- data/test_rails_app/app/helpers/blog_posts_helper.rb +0 -2
- data/test_rails_app/app/models/appointment.rb +0 -5
- data/test_rails_app/app/models/blog_post.rb +0 -14
- data/test_rails_app/app/models/blog_post_tag.rb +0 -6
- data/test_rails_app/app/models/bookmark.rb +0 -6
- data/test_rails_app/app/models/comment.rb +0 -4
- data/test_rails_app/app/models/file_column_image.rb +0 -3
- data/test_rails_app/app/models/image.rb +0 -3
- data/test_rails_app/app/models/not_migrated_yet.rb +0 -2
- data/test_rails_app/app/models/product.rb +0 -7
- data/test_rails_app/app/models/product_category.rb +0 -9
- data/test_rails_app/app/models/tag.rb +0 -4
- data/test_rails_app/app/models/television_airing.rb +0 -3
- data/test_rails_app/app/models/television_time_slot.rb +0 -11
- data/test_rails_app/app/models/user.rb +0 -14
- data/test_rails_app/app/views/admin/appointments/_subject_input.html.erb +0 -2
- data/test_rails_app/app/views/admin/appointments2/_time_input.html.erb +0 -31
- data/test_rails_app/app/views/admin/blog_posts2/_after_form.html.erb +0 -5
- data/test_rails_app/app/views/admin/blog_posts2/_after_index.html.erb +0 -1
- data/test_rails_app/app/views/admin/blog_posts2/_after_tags_input.html.erb +0 -16
- data/test_rails_app/app/views/admin/blog_posts2/_before_index.html.erb +0 -2
- data/test_rails_app/app/views/admin/blog_posts5/_after_index_header.html.erb +0 -8
- data/test_rails_app/app/views/admin/blog_posts_read_only/_body_for_show.html.erb +0 -1
- data/test_rails_app/app/views/admin/products/_name_input.html.erb +0 -2
- data/test_rails_app/app/views/admin/products/_percent_off_input.html.erb +0 -2
- data/test_rails_app/app/views/admin/products/_price_input.html.erb +0 -10
- data/test_rails_app/app/views/blog_posts/show.html.erb +0 -13
- data/test_rails_app/app/views/layouts/admin.html.erb +0 -31
- data/test_rails_app/config/boot.rb +0 -109
- data/test_rails_app/config/database.yml +0 -28
- data/test_rails_app/config/environment.rb +0 -78
- data/test_rails_app/config/environments/development.rb +0 -17
- data/test_rails_app/config/environments/production.rb +0 -24
- data/test_rails_app/config/environments/test.rb +0 -24
- data/test_rails_app/config/initializers/inflections.rb +0 -10
- data/test_rails_app/config/initializers/mime_types.rb +0 -5
- data/test_rails_app/config/initializers/new_rails_defaults.rb +0 -17
- data/test_rails_app/config/locales/en.yml +0 -5
- data/test_rails_app/config/routes.rb +0 -43
- data/test_rails_app/db/migrate/20090213215514_create_blog_posts.rb +0 -12
- data/test_rails_app/db/migrate/20090217225542_add_body_to_blog_posts.rb +0 -9
- data/test_rails_app/db/migrate/20090221220917_create_tags.rb +0 -13
- data/test_rails_app/db/migrate/20090221220947_create_blog_post_tags.rb +0 -14
- data/test_rails_app/db/migrate/20090222162204_add_textile_to_blog_posts.rb +0 -9
- data/test_rails_app/db/migrate/20090222163231_add_published_at_to_blog_posts.rb +0 -9
- data/test_rails_app/db/migrate/20090301191722_create_images.rb +0 -16
- data/test_rails_app/db/migrate/20090305165345_create_accounts.rb +0 -14
- data/test_rails_app/db/migrate/20090307225027_rename_accounts_to_users.rb +0 -9
- data/test_rails_app/db/migrate/20090307225750_add_user_id_to_blog_posts.rb +0 -9
- data/test_rails_app/db/migrate/20090309185114_change_blog_posts_textile.rb +0 -9
- data/test_rails_app/db/migrate/20090309193635_create_products.rb +0 -14
- data/test_rails_app/db/migrate/20090309203056_create_comments.rb +0 -15
- data/test_rails_app/db/migrate/20090323005947_create_file_column_images.rb +0 -12
- data/test_rails_app/db/migrate/20090326160049_add_birthday_to_users.rb +0 -9
- data/test_rails_app/db/migrate/20090326223606_add_state_to_users.rb +0 -9
- data/test_rails_app/db/migrate/20090503134004_add_file_column_image_to_products.rb +0 -9
- data/test_rails_app/db/migrate/20090617173651_create_bookmarks.rb +0 -15
- data/test_rails_app/db/migrate/20090624165355_add_tags_string_to_blog_post.rb +0 -9
- data/test_rails_app/db/migrate/20090625144313_add_avatar_fields_to_user.rb +0 -11
- data/test_rails_app/db/migrate/20090629202956_add_merged_into_to_blog_posts.rb +0 -9
- data/test_rails_app/db/migrate/20090701171857_add_force_textile_to_users.rb +0 -9
- data/test_rails_app/db/migrate/20090704163647_add_deleted_at_to_products.rb +0 -9
- data/test_rails_app/db/migrate/20090704173800_add_sale_fields_to_products.rb +0 -13
- data/test_rails_app/db/migrate/20090714024501_create_product_categories.rb +0 -15
- data/test_rails_app/db/migrate/20090819162835_add_admin_level_to_users.rb +0 -9
- data/test_rails_app/db/migrate/20091115134559_add_first_and_last_names_to_users.rb +0 -11
- data/test_rails_app/db/migrate/20091221011256_add_position_to_product_categories.rb +0 -9
- data/test_rails_app/db/migrate/20091222160814_create_appointments.rb +0 -14
- data/test_rails_app/db/migrate/20091227224547_add_user_id_to_appointments.rb +0 -9
- data/test_rails_app/db/migrate/20100214213359_create_television_time_slots.rb +0 -13
- data/test_rails_app/db/migrate/20100214213451_create_television_airings.rb +0 -15
- data/test_rails_app/doc/README_FOR_APP +0 -5
- data/test_rails_app/lib/tasks/rspec.rake +0 -163
- data/test_rails_app/public/404.html +0 -30
- data/test_rails_app/public/422.html +0 -30
- data/test_rails_app/public/500.html +0 -33
- data/test_rails_app/public/dispatch.cgi +0 -10
- data/test_rails_app/public/dispatch.fcgi +0 -24
- data/test_rails_app/public/dispatch.rb +0 -10
- data/test_rails_app/public/favicon.ico +0 -0
- data/test_rails_app/public/images/rails.png +0 -0
- data/test_rails_app/public/index.html +0 -274
- data/test_rails_app/public/javascripts/application.js +0 -2
- data/test_rails_app/public/javascripts/controls.js +0 -963
- data/test_rails_app/public/javascripts/dragdrop.js +0 -973
- data/test_rails_app/public/javascripts/effects.js +0 -1128
- data/test_rails_app/public/javascripts/prototype.js +0 -4320
- data/test_rails_app/public/robots.txt +0 -5
- data/test_rails_app/public/stylesheets/admin.css +0 -3
- data/test_rails_app/public/stylesheets/scaffold.css +0 -54
- data/test_rails_app/script/about +0 -4
- data/test_rails_app/script/autospec +0 -5
- data/test_rails_app/script/console +0 -3
- data/test_rails_app/script/dbconsole +0 -3
- data/test_rails_app/script/destroy +0 -3
- data/test_rails_app/script/generate +0 -3
- data/test_rails_app/script/performance/benchmarker +0 -3
- data/test_rails_app/script/performance/profiler +0 -3
- data/test_rails_app/script/performance/request +0 -3
- data/test_rails_app/script/plugin +0 -3
- data/test_rails_app/script/populate_tables.rb +0 -49
- data/test_rails_app/script/process/inspector +0 -3
- data/test_rails_app/script/process/reaper +0 -3
- data/test_rails_app/script/process/spawner +0 -3
- data/test_rails_app/script/runner +0 -3
- data/test_rails_app/script/server +0 -3
- data/test_rails_app/script/spec +0 -5
- data/test_rails_app/script/spec_server +0 -125
- data/test_rails_app/spec/controllers/admin/appointments2_controller_spec.rb +0 -88
- data/test_rails_app/spec/controllers/admin/appointments_controller_spec.rb +0 -419
- data/test_rails_app/spec/controllers/admin/blog_posts2_controller_spec.rb +0 -1021
- data/test_rails_app/spec/controllers/admin/blog_posts3_controller_spec.rb +0 -532
- data/test_rails_app/spec/controllers/admin/blog_posts4_controller_spec.rb +0 -231
- data/test_rails_app/spec/controllers/admin/blog_posts5_controller_spec.rb +0 -77
- data/test_rails_app/spec/controllers/admin/blog_posts6_controller_spec.rb +0 -49
- data/test_rails_app/spec/controllers/admin/blog_posts_controller_spec.rb +0 -987
- data/test_rails_app/spec/controllers/admin/blog_posts_custom_new_and_edit_controller_spec.rb +0 -99
- data/test_rails_app/spec/controllers/admin/blog_posts_read_only_controller_spec.rb +0 -94
- data/test_rails_app/spec/controllers/admin/bookmarks_controller_spec.rb +0 -505
- data/test_rails_app/spec/controllers/admin/comments2_controller_spec.rb +0 -70
- data/test_rails_app/spec/controllers/admin/comments_controller_spec.rb +0 -82
- data/test_rails_app/spec/controllers/admin/file_column_images2_controller_spec.rb +0 -25
- data/test_rails_app/spec/controllers/admin/file_column_images_controller_spec.rb +0 -82
- data/test_rails_app/spec/controllers/admin/images2_controller_spec.rb +0 -44
- data/test_rails_app/spec/controllers/admin/images_controller_spec.rb +0 -97
- data/test_rails_app/spec/controllers/admin/misconfigured1_controller_spec.rb +0 -21
- data/test_rails_app/spec/controllers/admin/not_migrated_yets_controller_spec.rb +0 -10
- data/test_rails_app/spec/controllers/admin/product_categories2_controller_spec.rb +0 -215
- data/test_rails_app/spec/controllers/admin/product_categories_controller_spec.rb +0 -19
- data/test_rails_app/spec/controllers/admin/products2_controller_spec.rb +0 -203
- data/test_rails_app/spec/controllers/admin/products_controller_spec.rb +0 -255
- data/test_rails_app/spec/controllers/admin/television_airings_controller_spec.rb +0 -32
- data/test_rails_app/spec/controllers/admin/television_time_slots_controller_spec.rb +0 -10
- data/test_rails_app/spec/controllers/admin/users2_controller_spec.rb +0 -65
- data/test_rails_app/spec/controllers/admin/users_controller_spec.rb +0 -344
- data/test_rails_app/spec/controllers/blog_posts_controller_spec.rb +0 -13
- data/test_rails_app/spec/data/ruby_throated.jpg +0 -0
- data/test_rails_app/spec/data/tweenbot.jpg +0 -0
- data/test_rails_app/spec/fixtures/appointments.yml +0 -9
- data/test_rails_app/spec/fixtures/blog_post_tags.yml +0 -9
- data/test_rails_app/spec/fixtures/blog_posts.yml +0 -7
- data/test_rails_app/spec/fixtures/bookmarks.yml +0 -11
- data/test_rails_app/spec/fixtures/comments.yml +0 -11
- data/test_rails_app/spec/fixtures/file_column_images.yml +0 -7
- data/test_rails_app/spec/fixtures/images.yml +0 -7
- data/test_rails_app/spec/fixtures/not_migrated_yets.yml +0 -7
- data/test_rails_app/spec/fixtures/product_categories.yml +0 -7
- data/test_rails_app/spec/fixtures/products.yml +0 -9
- data/test_rails_app/spec/fixtures/tags.yml +0 -7
- data/test_rails_app/spec/fixtures/television_airings.yml +0 -11
- data/test_rails_app/spec/fixtures/television_time_slots.yml +0 -7
- data/test_rails_app/spec/fixtures/users.yml +0 -9
- data/test_rails_app/spec/helpers/admin/appointments2_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/appointments_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/blog_posts2_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/blog_posts3_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/blog_posts4_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/blog_posts_custom_new_and_edit_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/blog_posts_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/blog_posts_read_only_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/bookmarks_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/comments2_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/comments_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/file_column_images2_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/file_column_images_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/images2_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/images_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/misconfigured1_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/not_migrated_yets_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/product_categories2_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/product_categories_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/products2_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/products_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/television_airings_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/television_time_slots_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/users2_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/admin/users_helper_spec.rb +0 -11
- data/test_rails_app/spec/helpers/blog_posts_helper_spec.rb +0 -11
- data/test_rails_app/spec/models/appointment_spec.rb +0 -16
- data/test_rails_app/spec/models/blog_post_spec.rb +0 -13
- data/test_rails_app/spec/models/blog_post_tag_spec.rb +0 -14
- data/test_rails_app/spec/models/bookmark_spec.rb +0 -15
- data/test_rails_app/spec/models/comment_spec.rb +0 -15
- data/test_rails_app/spec/models/file_column_image_spec.rb +0 -12
- data/test_rails_app/spec/models/image_spec.rb +0 -12
- data/test_rails_app/spec/models/not_migrated_yet_spec.rb +0 -15
- data/test_rails_app/spec/models/product_category_spec.rb +0 -15
- data/test_rails_app/spec/models/product_spec.rb +0 -14
- data/test_rails_app/spec/models/tag_spec.rb +0 -13
- data/test_rails_app/spec/models/television_airing_spec.rb +0 -15
- data/test_rails_app/spec/models/television_time_slot_spec.rb +0 -13
- data/test_rails_app/spec/models/user_spec.rb +0 -14
- data/test_rails_app/spec/rcov.opts +0 -2
- data/test_rails_app/spec/spec.opts +0 -4
- data/test_rails_app/spec/spec_helper.rb +0 -88
- data/test_rails_app/spec/spec_or_test_helper.rb +0 -49
- data/test_rails_app/test/fixtures/file_column_images.yml +0 -7
- data/test_rails_app/test/integration/admin_blog_posts2_integration_test.rb +0 -16
- data/test_rails_app/test/integration/admin_blog_posts5_integration_test.rb +0 -19
- data/test_rails_app/test/integration/admin_blog_posts_integration_test.rb +0 -25
- data/test_rails_app/test/test_helper.rb +0 -28
- data/test_rails_app/vendor/plugins/file_column/CHANGELOG +0 -69
- data/test_rails_app/vendor/plugins/file_column/README +0 -54
- data/test_rails_app/vendor/plugins/file_column/Rakefile +0 -36
- data/test_rails_app/vendor/plugins/file_column/TODO +0 -6
- data/test_rails_app/vendor/plugins/file_column/init.rb +0 -13
- data/test_rails_app/vendor/plugins/file_column/lib/file_column.rb +0 -723
- data/test_rails_app/vendor/plugins/file_column/lib/file_column_helper.rb +0 -150
- data/test_rails_app/vendor/plugins/file_column/lib/file_compat.rb +0 -28
- data/test_rails_app/vendor/plugins/file_column/lib/magick_file_column.rb +0 -260
- data/test_rails_app/vendor/plugins/file_column/lib/rails_file_column.rb +0 -19
- data/test_rails_app/vendor/plugins/file_column/lib/test_case.rb +0 -124
- data/test_rails_app/vendor/plugins/file_column/lib/validations.rb +0 -112
- data/test_rails_app/vendor/plugins/file_column/test/abstract_unit.rb +0 -63
- data/test_rails_app/vendor/plugins/file_column/test/connection.rb +0 -17
- data/test_rails_app/vendor/plugins/file_column/test/file_column_helper_test.rb +0 -97
- data/test_rails_app/vendor/plugins/file_column/test/file_column_test.rb +0 -650
- data/test_rails_app/vendor/plugins/file_column/test/fixtures/entry.rb +0 -32
- data/test_rails_app/vendor/plugins/file_column/test/fixtures/invalid-image.jpg +0 -1
- data/test_rails_app/vendor/plugins/file_column/test/fixtures/kerb.jpg +0 -0
- data/test_rails_app/vendor/plugins/file_column/test/fixtures/mysql.sql +0 -25
- data/test_rails_app/vendor/plugins/file_column/test/fixtures/schema.rb +0 -10
- data/test_rails_app/vendor/plugins/file_column/test/fixtures/skanthak.png +0 -0
- data/test_rails_app/vendor/plugins/file_column/test/magick_test.rb +0 -380
- data/test_rails_app/vendor/plugins/file_column/test/magick_view_only_test.rb +0 -21
|
@@ -1,532 +0,0 @@
|
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
|
2
|
-
|
|
3
|
-
describe Admin::BlogPosts3Controller do
|
|
4
|
-
integrate_views
|
|
5
|
-
|
|
6
|
-
before :all do
|
|
7
|
-
User.destroy_all
|
|
8
|
-
@user = User.create! :username => 'soren', :password => 'password'
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
describe '#create with no title' do
|
|
12
|
-
before :each do
|
|
13
|
-
@orig_blog_post_count = BlogPost.count
|
|
14
|
-
post :create, :blog_post => {:user_id => @user.id}
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it 'should redirect to the index' do
|
|
18
|
-
response.should redirect_to(:action => 'index')
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it 'should create a new blog post with the title pre-filled as (draft)' do
|
|
22
|
-
BlogPost.count.should == @orig_blog_post_count + 1
|
|
23
|
-
blog_post = BlogPost.last
|
|
24
|
-
blog_post.title.should == '(draft)'
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
describe '#edit' do
|
|
29
|
-
before :all do
|
|
30
|
-
@blog_post = BlogPost.create! :title => random_word, :user => @user
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
before :each do
|
|
34
|
-
get :edit, :id => @blog_post.id
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it 'should have a body field' do
|
|
38
|
-
response.should have_tag('textarea[name=?]', 'blog_post[body]')
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
it 'should not include textile' do
|
|
42
|
-
response.body.should_not match(/textile/)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
describe '#index' do
|
|
47
|
-
describe 'with no blog posts' do
|
|
48
|
-
before :all do
|
|
49
|
-
BlogPost.destroy_all
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
before :each do
|
|
53
|
-
get :index
|
|
54
|
-
response.should be_success
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it 'should use the activescaffold-themed CSS' do
|
|
58
|
-
response.should have_tag(
|
|
59
|
-
'link[href^=/stylesheets/admin_assistant/activescaffold.css]'
|
|
60
|
-
)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
it "should say 'Posts'" do
|
|
64
|
-
response.should have_tag('h2', :text => 'Posts')
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
describe 'with one unpublished blog post' do
|
|
69
|
-
before :all do
|
|
70
|
-
BlogPost.destroy_all
|
|
71
|
-
@blog_post = BlogPost.create!(
|
|
72
|
-
:title => "unpublished blog post", :user => @user,
|
|
73
|
-
:published_at => nil
|
|
74
|
-
)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
before :each do
|
|
78
|
-
$cache.flush
|
|
79
|
-
get :index
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
it 'should show the blog post' do
|
|
83
|
-
response.body.should match(/unpublished blog post/)
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
it "should show 'No' from having called BlogPost#published?" do
|
|
87
|
-
response.should have_tag("tr[id=blog_post_#{@blog_post.id}]") do
|
|
88
|
-
with_tag "td", :text => 'No'
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
it 'should not have a comparator for the ID search field' do
|
|
93
|
-
response.should have_tag('form[id=search_form][method=get]') do
|
|
94
|
-
without_tag("select[name=?]", "search[id(comparator)]")
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
it 'should have a blank checkbox for the body search field' do
|
|
99
|
-
response.should have_tag('form[id=search_form][method=get]') do
|
|
100
|
-
with_tag("input[type=checkbox][name=?]", "search[body(blank)]")
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
it 'should render extra action links in order' do
|
|
105
|
-
response.body.should match(/Short title.*Blank body/m)
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
it 'should have a trinary select for the has_short_title search field' do
|
|
109
|
-
response.should have_tag('form[id=search_form][method=get]') do
|
|
110
|
-
with_tag('select[name=?]', 'search[has_short_title]') do
|
|
111
|
-
with_tag("option[value='']", :text => '')
|
|
112
|
-
with_tag("option[value='true']", :text => 'Yes')
|
|
113
|
-
with_tag("option[value='false']", :text => 'No')
|
|
114
|
-
end
|
|
115
|
-
end
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
it 'should show a search form with specific fields' do
|
|
119
|
-
response.should have_tag(
|
|
120
|
-
'form[id=search_form][method=get]', :text => /Title/
|
|
121
|
-
) do
|
|
122
|
-
with_tag('input[name=?]', 'search[title]')
|
|
123
|
-
with_tag('input[name=?]', 'search[body]')
|
|
124
|
-
with_tag('select[name=?]', 'search[textile]') do
|
|
125
|
-
with_tag("option[value='']", :text => '')
|
|
126
|
-
with_tag("option[value='true']", :text => 'true')
|
|
127
|
-
with_tag("option[value='false']", :text => 'false')
|
|
128
|
-
end
|
|
129
|
-
with_tag('label', :text => 'User')
|
|
130
|
-
with_tag('input[name=?]', 'search[user]')
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
it 'should set the count in memcache' do
|
|
135
|
-
key =
|
|
136
|
-
"AdminAssistant::Admin::BlogPosts3Controller_count_published_at_is_null_"
|
|
137
|
-
$cache.read(key).should == 1
|
|
138
|
-
$cache.expires_in(key).should be_close(12.hours, 5.seconds)
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
it 'should not make the textile field an Ajax toggle' do
|
|
142
|
-
toggle_div_id = "blog_post_#{@blog_post.id}_textile"
|
|
143
|
-
response.body.should_not match(
|
|
144
|
-
%r|new Ajax.Updater\('#{toggle_div_id}'|
|
|
145
|
-
)
|
|
146
|
-
end
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
describe 'with a published blog post' do
|
|
150
|
-
before :all do
|
|
151
|
-
$cache.flush
|
|
152
|
-
BlogPost.destroy_all
|
|
153
|
-
BlogPost.create!(
|
|
154
|
-
:title => "published blog post", :user => @user,
|
|
155
|
-
:published_at => Time.now.utc
|
|
156
|
-
)
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
before :each do
|
|
160
|
-
get :index
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
it 'should not show the blog post' do
|
|
164
|
-
response.body.should_not match(/published blog post/)
|
|
165
|
-
response.body.should match(/No posts found/)
|
|
166
|
-
end
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
describe 'when searching by user' do
|
|
170
|
-
before :all do
|
|
171
|
-
User.destroy_all
|
|
172
|
-
tiffany = User.create!(:username => 'tiffany')
|
|
173
|
-
BlogPost.create! :title => "By Tiffany", :user => tiffany
|
|
174
|
-
BlogPost.create!(
|
|
175
|
-
:title => "Already published", :user => tiffany,
|
|
176
|
-
:published_at => Time.now
|
|
177
|
-
)
|
|
178
|
-
bill = User.create! :username => 'bill', :password => 'parsimony'
|
|
179
|
-
BlogPost.create! :title => "By Bill", :user => bill
|
|
180
|
-
brooklyn_steve = User.create!(
|
|
181
|
-
:username => 'brooklyn_steve', :state => 'NY'
|
|
182
|
-
)
|
|
183
|
-
BlogPost.create! :title => "By Brooklyn Steve", :user => brooklyn_steve
|
|
184
|
-
sadie = User.create!(
|
|
185
|
-
:username => 'Sadie', :password => 'sadie', :state => 'KY'
|
|
186
|
-
)
|
|
187
|
-
BlogPost.create! :title => "By Sadie", :user => sadie
|
|
188
|
-
end
|
|
189
|
-
|
|
190
|
-
before :each do
|
|
191
|
-
get(
|
|
192
|
-
:index,
|
|
193
|
-
:search => {
|
|
194
|
-
:body => "", :textile => "", :id => "", :user => 'ny',
|
|
195
|
-
:has_short_title => ''
|
|
196
|
-
}
|
|
197
|
-
)
|
|
198
|
-
response.should be_success
|
|
199
|
-
end
|
|
200
|
-
|
|
201
|
-
it 'should match the string to the username' do
|
|
202
|
-
response.body.should match(/By Tiffany/)
|
|
203
|
-
end
|
|
204
|
-
|
|
205
|
-
it 'should match the string to the password' do
|
|
206
|
-
response.body.should match(/By Bill/)
|
|
207
|
-
end
|
|
208
|
-
|
|
209
|
-
it 'should match the string to the state' do
|
|
210
|
-
response.body.should match(/By Brooklyn Steve/)
|
|
211
|
-
end
|
|
212
|
-
|
|
213
|
-
it "should skip blog posts that don't match anything on the user" do
|
|
214
|
-
response.body.should_not match(/By Sadie/)
|
|
215
|
-
end
|
|
216
|
-
|
|
217
|
-
it 'should skip blog posts that have already been published' do
|
|
218
|
-
response.body.should_not match(/Already published/)
|
|
219
|
-
end
|
|
220
|
-
end
|
|
221
|
-
|
|
222
|
-
describe 'with blog posts from two different users' do
|
|
223
|
-
before :all do
|
|
224
|
-
aardvark_man = User.create!(:username => 'aardvark_man')
|
|
225
|
-
BlogPost.create! :title => 'AARDVARKS!!!!!1', :user => aardvark_man
|
|
226
|
-
ziggurat = User.create!(:username => 'zigguratz')
|
|
227
|
-
BlogPost.create! :title => "Wanna go climbing?", :user => ziggurat
|
|
228
|
-
end
|
|
229
|
-
|
|
230
|
-
before :each do
|
|
231
|
-
get :index
|
|
232
|
-
response.should be_success
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
it 'should sort by username' do
|
|
236
|
-
response.body.should match(%r|AARDVARKS!!!!!1.*Wanna go climbing|m)
|
|
237
|
-
end
|
|
238
|
-
end
|
|
239
|
-
end
|
|
240
|
-
|
|
241
|
-
describe '#index when search for a blank body' do
|
|
242
|
-
before :all do
|
|
243
|
-
BlogPost.destroy_all
|
|
244
|
-
@nil_body_post = BlogPost.create!(
|
|
245
|
-
:title => "nil", :user => @user, :body => nil
|
|
246
|
-
)
|
|
247
|
-
@empty_string_body_post = BlogPost.create!(
|
|
248
|
-
:title => "empty string", :user => @user, :body => ''
|
|
249
|
-
)
|
|
250
|
-
@non_blank_body_post = BlogPost.create!(
|
|
251
|
-
:title => "non-blank", :user => @user, :body => 'foo'
|
|
252
|
-
)
|
|
253
|
-
end
|
|
254
|
-
|
|
255
|
-
before :each do
|
|
256
|
-
get(
|
|
257
|
-
:index,
|
|
258
|
-
:search => {
|
|
259
|
-
"body(blank)" => '1', :user => '', :body => '', :title => '',
|
|
260
|
-
:textile => '', :id => '', '(all_or_any)' => 'all',
|
|
261
|
-
:has_short_title => ''
|
|
262
|
-
}
|
|
263
|
-
)
|
|
264
|
-
end
|
|
265
|
-
|
|
266
|
-
it 'should retrieve a blog post with a nil body' do
|
|
267
|
-
response.should have_tag("tr[id=?]", "blog_post_#{@nil_body_post.id}")
|
|
268
|
-
end
|
|
269
|
-
|
|
270
|
-
it 'should retrieve a blog post with a space-only string body' do
|
|
271
|
-
response.should have_tag(
|
|
272
|
-
"tr[id=?]", "blog_post_#{@empty_string_body_post.id}"
|
|
273
|
-
)
|
|
274
|
-
end
|
|
275
|
-
|
|
276
|
-
it 'should not retrieve a blog post with a non-blank body' do
|
|
277
|
-
response.should_not have_tag(
|
|
278
|
-
"tr[id=?]", "blog_post_#{@non_blank_body_post.id}"
|
|
279
|
-
)
|
|
280
|
-
end
|
|
281
|
-
|
|
282
|
-
it 'should have a checked blank checkbox for the body search field' do
|
|
283
|
-
response.should have_tag('form[id=search_form][method=get]') do
|
|
284
|
-
with_tag(
|
|
285
|
-
"input[type=checkbox][checked=checked][name=?]",
|
|
286
|
-
"search[body(blank)]"
|
|
287
|
-
)
|
|
288
|
-
end
|
|
289
|
-
end
|
|
290
|
-
end
|
|
291
|
-
|
|
292
|
-
describe '#index when searching and there are blog posts with varying title lengths' do
|
|
293
|
-
before :all do
|
|
294
|
-
BlogPost.destroy_all
|
|
295
|
-
@bp1 = BlogPost.create!(
|
|
296
|
-
:title => 'short', :body => 'foobar', :user => @user
|
|
297
|
-
)
|
|
298
|
-
@bp2 = BlogPost.create!(
|
|
299
|
-
:title => "longer title", :body => 'foobar', :user => @user
|
|
300
|
-
)
|
|
301
|
-
end
|
|
302
|
-
|
|
303
|
-
describe 'when searching for short-titled blog posts' do
|
|
304
|
-
before :each do
|
|
305
|
-
get(
|
|
306
|
-
:index,
|
|
307
|
-
:search => {
|
|
308
|
-
:body => "", "body(blank)" => '0', :textile => "", :id => "",
|
|
309
|
-
:user => '', :has_short_title => 'true'
|
|
310
|
-
}
|
|
311
|
-
)
|
|
312
|
-
end
|
|
313
|
-
|
|
314
|
-
it 'should return a short-titled blog post' do
|
|
315
|
-
response.should have_tag('td', :text => 'short')
|
|
316
|
-
end
|
|
317
|
-
|
|
318
|
-
it 'should not return a longer-title blog post' do
|
|
319
|
-
response.should_not have_tag('td', :text => 'longer title')
|
|
320
|
-
end
|
|
321
|
-
|
|
322
|
-
it "should pre-select 'true' in the has_short_title search field" do
|
|
323
|
-
response.should have_tag('form[id=search_form][method=get]') do
|
|
324
|
-
with_tag('select[name=?]', 'search[has_short_title]') do
|
|
325
|
-
with_tag("option[value='']", :text => '')
|
|
326
|
-
with_tag("option[value='true'][selected=selected]", :text => 'Yes')
|
|
327
|
-
with_tag("option[value='false']", :text => 'No')
|
|
328
|
-
end
|
|
329
|
-
end
|
|
330
|
-
end
|
|
331
|
-
end
|
|
332
|
-
|
|
333
|
-
describe 'when searching for long-titled blog posts' do
|
|
334
|
-
before :each do
|
|
335
|
-
get(
|
|
336
|
-
:index,
|
|
337
|
-
:search => {
|
|
338
|
-
:body => "", "body(blank)" => '0', :textile => "", :id => "",
|
|
339
|
-
:user => '', :has_short_title => 'false'
|
|
340
|
-
}
|
|
341
|
-
)
|
|
342
|
-
end
|
|
343
|
-
|
|
344
|
-
it 'should not return a short-titled blog post' do
|
|
345
|
-
response.should_not have_tag('td', :text => 'short')
|
|
346
|
-
end
|
|
347
|
-
|
|
348
|
-
it 'should return a longer-title blog post' do
|
|
349
|
-
response.should have_tag('td', :text => 'longer title')
|
|
350
|
-
end
|
|
351
|
-
|
|
352
|
-
it "should pre-select 'false' in the has_short_title search field" do
|
|
353
|
-
response.should have_tag('form[id=search_form][method=get]') do
|
|
354
|
-
with_tag('select[name=?]', 'search[has_short_title]') do
|
|
355
|
-
with_tag("option[value='']", :text => '')
|
|
356
|
-
with_tag("option[value='true']", :text => 'Yes')
|
|
357
|
-
with_tag("option[value='false'][selected=selected]", :text => 'No')
|
|
358
|
-
end
|
|
359
|
-
end
|
|
360
|
-
end
|
|
361
|
-
end
|
|
362
|
-
|
|
363
|
-
describe 'when searching for blog posts of any title-length' do
|
|
364
|
-
before :each do
|
|
365
|
-
get(
|
|
366
|
-
:index,
|
|
367
|
-
:search => {
|
|
368
|
-
:body => 'foobar', "body(blank)" => '0', :textile => "", :id => "",
|
|
369
|
-
:user => '', :has_short_title => ''
|
|
370
|
-
}
|
|
371
|
-
)
|
|
372
|
-
end
|
|
373
|
-
|
|
374
|
-
it 'should return a short-titled blog post' do
|
|
375
|
-
response.should have_tag('td', :text => 'short')
|
|
376
|
-
end
|
|
377
|
-
|
|
378
|
-
it 'should return a longer-title blog post' do
|
|
379
|
-
response.should have_tag('td', :text => 'longer title')
|
|
380
|
-
end
|
|
381
|
-
end
|
|
382
|
-
end
|
|
383
|
-
|
|
384
|
-
describe '#index when searching by ID' do
|
|
385
|
-
before :all do
|
|
386
|
-
BlogPost.destroy_all
|
|
387
|
-
@blog_post1 = BlogPost.create! :title => random_word, :user => @user
|
|
388
|
-
blog_post2 = BlogPost.create! :title => random_word, :user => @user
|
|
389
|
-
BlogPost.update_all(
|
|
390
|
-
"id = #{@blog_post1.id * 10}", "id = #{blog_post2.id}"
|
|
391
|
-
)
|
|
392
|
-
@blog_post2 = BlogPost.find(@blog_post1.id * 10)
|
|
393
|
-
end
|
|
394
|
-
|
|
395
|
-
before :each do
|
|
396
|
-
get(
|
|
397
|
-
:index,
|
|
398
|
-
:search => {
|
|
399
|
-
:body => '', "body(blank)" => '0', :textile => "",
|
|
400
|
-
:id => @blog_post1.id.to_s, :user => '', :has_short_title => ''
|
|
401
|
-
}
|
|
402
|
-
)
|
|
403
|
-
end
|
|
404
|
-
|
|
405
|
-
it 'should match the record with that ID' do
|
|
406
|
-
response.should have_tag("tr[id=?]", "blog_post_#{@blog_post1.id}")
|
|
407
|
-
end
|
|
408
|
-
|
|
409
|
-
it 'should not match a record with an ID that has the ID as a substring' do
|
|
410
|
-
response.should_not have_tag("tr[id=?]", "blog_post_#{@blog_post2.id}")
|
|
411
|
-
end
|
|
412
|
-
end
|
|
413
|
-
|
|
414
|
-
describe '#index when the blank-body count has been cached in memcache but the request is looking for the default index' do
|
|
415
|
-
before :all do
|
|
416
|
-
$cache.flush
|
|
417
|
-
another_key =
|
|
418
|
-
"AdminAssistant::Admin::BlogPosts3Controller_count__body_is_null_or_body______"
|
|
419
|
-
$cache.write another_key, 1_000_000, :expires_in => 12.hours
|
|
420
|
-
end
|
|
421
|
-
|
|
422
|
-
before :each do
|
|
423
|
-
get :index
|
|
424
|
-
end
|
|
425
|
-
|
|
426
|
-
it 'should not read a value from memcache' do
|
|
427
|
-
response.body.should_not match(/1000000 posts found/)
|
|
428
|
-
end
|
|
429
|
-
|
|
430
|
-
it 'should set the count in memcache' do
|
|
431
|
-
key =
|
|
432
|
-
"AdminAssistant::Admin::BlogPosts3Controller_count_published_at_is_null_"
|
|
433
|
-
$cache.read(key).should_not be_nil
|
|
434
|
-
$cache.expires_in(key).should be_close(12.hours, 5.seconds)
|
|
435
|
-
end
|
|
436
|
-
end
|
|
437
|
-
|
|
438
|
-
describe '#index when the count has been cached in memcache' do
|
|
439
|
-
before :all do
|
|
440
|
-
key =
|
|
441
|
-
"AdminAssistant::Admin::BlogPosts3Controller_count_published_at_is_null_"
|
|
442
|
-
$cache.write key, 1_000_000, :expires_in => 12.hours
|
|
443
|
-
end
|
|
444
|
-
|
|
445
|
-
before :each do
|
|
446
|
-
$cache.raise_on_write
|
|
447
|
-
get :index
|
|
448
|
-
end
|
|
449
|
-
|
|
450
|
-
it 'should read memcache and not hit the database' do
|
|
451
|
-
response.body.should match(/1000000 posts found/)
|
|
452
|
-
end
|
|
453
|
-
end
|
|
454
|
-
|
|
455
|
-
describe "#index with more than one page's worth of unpublished blog posts" do
|
|
456
|
-
before :all do
|
|
457
|
-
$cache.flush
|
|
458
|
-
BlogPost.destroy_all
|
|
459
|
-
1.upto(26) do |i|
|
|
460
|
-
BlogPost.create!(
|
|
461
|
-
:title => "unpublished blog post #{i}", :user => @user,
|
|
462
|
-
:published_at => nil
|
|
463
|
-
)
|
|
464
|
-
end
|
|
465
|
-
@unpub_count = BlogPost.count "published_at is null"
|
|
466
|
-
end
|
|
467
|
-
|
|
468
|
-
before :each do
|
|
469
|
-
$cache.flush
|
|
470
|
-
get :index
|
|
471
|
-
end
|
|
472
|
-
|
|
473
|
-
it "should cache the total number of entries, not the entries on just this page" do
|
|
474
|
-
key =
|
|
475
|
-
"AdminAssistant::Admin::BlogPosts3Controller_count_published_at_is_null_"
|
|
476
|
-
$cache.read(key).should == @unpub_count
|
|
477
|
-
$cache.expires_in(key).should be_close(12.hours, 5.seconds)
|
|
478
|
-
end
|
|
479
|
-
end
|
|
480
|
-
|
|
481
|
-
describe '#new' do
|
|
482
|
-
before :each do
|
|
483
|
-
@request_time = Time.now.utc
|
|
484
|
-
get :new
|
|
485
|
-
end
|
|
486
|
-
|
|
487
|
-
it 'should not have a body field' do
|
|
488
|
-
response.should_not have_tag('textarea[name=?]', 'blog_post[body]')
|
|
489
|
-
end
|
|
490
|
-
|
|
491
|
-
it 'should have a published_at select that starts in the year 2009' do
|
|
492
|
-
name = 'blog_post[published_at(1i)]'
|
|
493
|
-
response.should have_tag('select[name=?]', name) do
|
|
494
|
-
with_tag "option[value='2009']"
|
|
495
|
-
with_tag "option[value='2010']"
|
|
496
|
-
without_tag "option[value='2008']"
|
|
497
|
-
end
|
|
498
|
-
end
|
|
499
|
-
|
|
500
|
-
it 'should have a published_at select that is set to now' do
|
|
501
|
-
name = 'blog_post[published_at(3i)]'
|
|
502
|
-
response.should have_tag('select[name=?]', name) do
|
|
503
|
-
with_tag "option[value=?][selected=selected]", @request_time.day
|
|
504
|
-
end
|
|
505
|
-
end
|
|
506
|
-
|
|
507
|
-
it 'should not show a nullify link for published_at' do
|
|
508
|
-
response.body.should_not have_tag(
|
|
509
|
-
'a', :text => "Set \"published at\" to nil"
|
|
510
|
-
)
|
|
511
|
-
end
|
|
512
|
-
|
|
513
|
-
it "should say 'New post'" do
|
|
514
|
-
response.should have_tag('h2', :text => 'New post')
|
|
515
|
-
end
|
|
516
|
-
end
|
|
517
|
-
|
|
518
|
-
describe '#show' do
|
|
519
|
-
before :all do
|
|
520
|
-
@blog_post = BlogPost.create! :title => "title", :user => @user
|
|
521
|
-
end
|
|
522
|
-
|
|
523
|
-
before :each do
|
|
524
|
-
get :show, :id => @blog_post.id
|
|
525
|
-
response.should be_success
|
|
526
|
-
end
|
|
527
|
-
|
|
528
|
-
it "should say 'Post [ID]'" do
|
|
529
|
-
response.should have_tag('h2', :text => "Post #{@blog_post.id}")
|
|
530
|
-
end
|
|
531
|
-
end
|
|
532
|
-
end
|