1 module ControllerMacros
\r
8 expect(response).to be_success
\r
13 expect {JSON.parse(response.body)}.not_to raise_error
\r
18 expect(response).to render_template("templates/r/filer/filer")
\r
21 def render_profiler?
\r
22 # profilerテンプレートを描画する
\r
23 expect(response).to render_template("templates/r/profiler/profiler")
\r
28 expect(response).to render_template("templates/r/form/form")
\r
32 # html形式: ステータスコード302 Foundを返す
\r
33 expect(response.status).to eq(302)
\r
34 expect(response).to redirect_to url
\r
37 # ゲストがapiからコンテンツにアクセスしようとした時の動作を確認する
\r
38 def render_unauthorized?
\r
39 # json形式: ステータスコード401 Unauthorizedを返す
\r
40 expect(response.status).to eq(401)
\r
41 expect(response.message).to match(/Unauthorized/)
\r
45 def render_unprocessable?
\r
46 expect(response.status).to eq(422)
\r
47 expect(response.message).to match(/Unprocessable/)
\r
50 def set_model? model_class, var_name = :my_model_class
\r
51 # @filerにファイラーを取得している
\r
52 expect(assigns(var_name).class).to be model_class.class
\r
55 def set_list? item_name, list_name, var_name = :list
\r
56 expect(assigns(var_name).item_name).to eq(item_name)
\r
57 expect(assigns(var_name).list_name).to eq(list_name)
\r
61 expect(assigns(:items).size).to be >= 3
\r
62 expect(assigns(:count)).to be >= 3
\r
63 expect(assigns(:pager)).not_to be nil
\r
66 def let_filer? var_name = :filer
\r
67 expect(assigns(var_name).class).to eq(Locmare::Filer)
\r
70 def set_bucket? item, var_name = :form
\r
71 # @filerにファイラーを取得している
\r
72 expect(assigns(var_name).item).to eq(item)
\r
73 expect(assigns(var_name).mounted).to eq(true)
\r
74 expect(assigns(var_name).submit).to eq(true)
\r
77 # 作家活動していないユーザーがAPIから創作活動をしようとしたとき、例外を発生させる。
\r
78 # 暫定的な仕様なので、良い方法があれば変えるかもしれない。メンテしやすいように切り分けてある。
\r
79 # リクエストして例外が発生したところとらえるので、リクエストと検証を同時に行う
\r
80 def announce_regist_author_for_json method, params = {}, action = :create
\r
81 expect {__send__(method, action, params.merge(:format => :json))}.to raise_error(ActiveRecord::Forbidden)
\r
84 # 保存処理を成功したことにしてスキップする
\r
85 def allow_save my_model_class
\r
86 allow_any_instance_of(my_model_class).to receive(:save).and_return(true)
\r
89 # 保存処理を失敗したことにしてスキップする
\r
90 def reject_save my_model_class
\r
91 allow_any_instance_of(my_model_class).to receive(:save).and_return(false)
\r
94 # 削除処理を成功したことにしてスキップする
\r
95 def allow_destroy my_model_class
\r
96 allow_any_instance_of(my_model_class).to receive(:destroy).and_return(true)
\r
99 # 削除処理を失敗したことにしてスキップする
\r
100 def reject_destroy my_model_class
\r
101 allow_any_instance_of(my_model_class).to receive(:destroy).and_return(false)
\r
104 def factory_contents factory_name, author, count = 5
\r
105 FactoryGirl.create_list(factory_name, count, author: author)
\r