diff options
Diffstat (limited to 'test/controllers/assets_controller_test.rb')
| -rw-r--r-- | test/controllers/assets_controller_test.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/controllers/assets_controller_test.rb b/test/controllers/assets_controller_test.rb index f834541..05fc6de 100644 --- a/test/controllers/assets_controller_test.rb +++ b/test/controllers/assets_controller_test.rb | |||
| @@ -92,6 +92,47 @@ class AssetsControllerTest < ActionController::TestCase | |||
| 92 | end | 92 | end |
| 93 | end | 93 | end |
| 94 | 94 | ||
| 95 | # --- create with attach --- | ||
| 96 | |||
| 97 | test "create with node_id attaches the asset to the node's draft" do | ||
| 98 | node = Node.root.children.create!(:slug => "asset_attach_target") | ||
| 99 | |||
| 100 | post :create, params: { asset: { name: 'Attach me' }, node_id: node.id } | ||
| 101 | |||
| 102 | assert_response :redirect | ||
| 103 | asset = Asset.last | ||
| 104 | assert_includes node.draft.assets.reload, asset | ||
| 105 | assert_match /attached/, flash[:notice] | ||
| 106 | end | ||
| 107 | |||
| 108 | test "create against a foreign-locked node keeps the asset but refuses the attach" do | ||
| 109 | node = Node.root.children.create!(:slug => "asset_attach_locked") | ||
| 110 | node.lock_for_editing!(users(:aaron)) | ||
| 111 | |||
| 112 | assert_difference 'Asset.count', 1 do | ||
| 113 | post :create, params: { asset: { name: 'Orphaned for now' }, node_id: node.id } | ||
| 114 | end | ||
| 115 | |||
| 116 | assert_empty node.draft.assets.reload | ||
| 117 | assert_equal node_path(node), flash[:locked_node_path] | ||
| 118 | assert_equal "aaron", flash[:locked_by] | ||
| 119 | end | ||
| 120 | |||
| 121 | test "create with headline against a page that has one keeps the incumbent and warns" do | ||
| 122 | node = Node.root.children.create!(:slug => "asset_attach_headline") | ||
| 123 | incumbent = Asset.create!(:name => 'Incumbent', :upload_content_type => 'image/png') | ||
| 124 | node.draft.related_assets.create!(:asset => incumbent, :headline => true) | ||
| 125 | |||
| 126 | uploaded = Rack::Test::UploadedFile.new( | ||
| 127 | Rails.root.join('test', 'fixtures', 'files', 'test_image.png'), 'image/png') | ||
| 128 | post :create, params: { asset: { name: 'Challenger', upload: uploaded }, | ||
| 129 | node_id: node.id, headline: "1" } | ||
| 130 | |||
| 131 | assert_includes node.draft.assets.reload, Asset.last | ||
| 132 | assert_equal incumbent, node.draft.reload.headline_asset | ||
| 133 | assert_equal node_path(node), flash[:headline_kept_path] | ||
| 134 | end | ||
| 135 | |||
| 95 | # --- edit --- | 136 | # --- edit --- |
| 96 | 137 | ||
| 97 | test "get edit" do | 138 | test "get edit" do |
