+++ /dev/null
-module BinderMacros\r
- def define_leaf_items?\r
- # ステータス OKを返す\r
- expect(response).to be_success\r
- end\r
- \r
- def render_json?\r
- # jsonデータを返す\r
- expect {JSON.parse(response.body)}.not_to raise_error\r
- end\r
- \r
- def render_filer?\r
- # filerテンプレートを描画する\r
- expect(response).to render_template("templates/r/filer/filer")\r
- end\r
- \r
- def render_profiler?\r
- # profilerテンプレートを描画する\r
- expect(response).to render_template("templates/r/profiler/profiler")\r
- end\r
- \r
- def render_form?\r
- # formテンプレートを描画する\r
- expect(response).to render_template("templates/r/form/form")\r
- end\r
- \r
- def redirect? url\r
- # html形式: ステータスコード302 Foundを返す\r
- expect(response.status).to eq(302)\r
- expect(response).to redirect_to url\r
- end\r
- \r
- # ゲストがapiからコンテンツにアクセスしようとした時の動作を確認する\r
- def render_unauthorized?\r
- # json形式: ステータスコード401 Unauthorizedを返す\r
- expect(response.status).to eq(401)\r
- expect(response.message).to match(/Unauthorized/)\r
- end\r
- \r
- # 処理不能を返す\r
- def render_unprocessable?\r
- expect(response.status).to eq(422)\r
- expect(response.message).to match(/Unprocessable/)\r
- end\r
- \r
- def render_complated?\r
- expect(response.message).to match /./\r
- end\r
- \r
- def set_model? model_class, var_name = :my_model_class\r
- expect(assigns(var_name)).to be model_class\r
- end\r
- \r
- def set_list_model? model_class, var_name = :my_list_model_class\r
- expect(assigns(var_name)).to be model_class\r
- end\r
- \r
- def set_list? item_name, list_name, var_name = :list\r
- expect(assigns(var_name).item_name).to eq(item_name)\r
- expect(assigns(var_name).list_name).to eq(list_name)\r
- end\r
- \r
- def set_play_list? model_class\r
- expect(assigns(:items).size).to be >= 3\r
- expect(assigns(:count)).to be >= 3\r
- expect(assigns(:pager)).not_to be nil\r
- expect(assigns(:items).first.class).to be model_class\r
- end\r
- \r
- def let_filer? var_name = :filer\r
- expect(assigns(var_name).class).to eq(Locmare::Filer)\r
- end\r
- \r
- def let_profiler? var_name = :profiler\r
- expect(assigns(var_name).class).to eq(Locmare::Profiler)\r
- end\r
- \r
- def set_bucket? item, var_name = :form\r
- # @filerにファイラーを取得している\r
- expect(assigns(var_name).item).to eq(item)\r
- expect(assigns(var_name).mounted).to eq(true)\r
- expect(assigns(var_name).submit).to eq(true)\r
- end\r
- \r
- def boost? names, var_name = :item\r
- if names.empty?\r
- assigns(var_name).boosters.empty?\r
- else\r
- names.each do |boost_name|\r
- expect(assigns(var_name).boosters[boost_name]).to_not be nil\r
- end\r
- end\r
- end\r
- \r
- # 作家活動していないユーザーがAPIから創作活動をしようとしたとき、例外を発生させる。\r
- # 暫定的な仕様なので、良い方法があれば変えるかもしれない。メンテしやすいように切り分けてある。\r
- # リクエストして例外が発生したところとらえるので、リクエストと検証を同時に行う\r
- def announce_regist_author_for_json method, params = {}, action = :create\r
- expect {__send__(method, action, params.merge(:format => :json))}.to raise_error(ActiveRecord::Forbidden)\r
- end\r
- \r
- # 保存処理を成功したことにしてスキップする\r
- def allow_save my_model_class\r
- allow_any_instance_of(my_model_class).to receive(:save).and_return(true)\r
- end\r
- \r
- # 保存処理を失敗したことにしてスキップする\r
- def reject_save my_model_class\r
- allow_any_instance_of(my_model_class).to receive(:save).and_return(false)\r
- end\r
- \r
- # 削除処理を成功したことにしてスキップする\r
- def allow_destroy my_model_class\r
- allow_any_instance_of(my_model_class).to receive(:destroy).and_return(true)\r
- end\r
- \r
- # 削除処理を失敗したことにしてスキップする\r
- def reject_destroy my_model_class\r
- allow_any_instance_of(my_model_class).to receive(:destroy).and_return(false)\r
- end\r
- \r
- def factory_contents factory_name, author, count = 5\r
- FactoryGirl.create_list(factory_name, count, author: author)\r
- end\r
- \r
-end\r
-\r