OSDN Git Service

問い合わせ文字列を制限(model)
authorTaro Matsuzawa aka. btm <btm@tech.email.ne.jp>
Sun, 4 Sep 2011 23:54:09 +0000 (08:54 +0900)
committerTaro Matsuzawa aka. btm <btm@tech.email.ne.jp>
Sun, 4 Sep 2011 23:54:09 +0000 (08:54 +0900)
app/models/inquiry.rb
spec/controllers/inquiries_controller_spec.rb

index 393a1fc..c8b2415 100644 (file)
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 class Inquiry < ActiveRecord::Base
 
   acts_as_paranoid
@@ -8,6 +9,9 @@ class Inquiry < ActiveRecord::Base
   validates_presence_of :kind
   validates_presence_of :name
 
+  validates_length_of :body, :maximum => 3000
+  validates_length_of :name, :maximum => 100
+
   #validates_format_of :email, :with => /^(([^@\s]+)@((?:[-a-z0-9]+\.)*[a-z]{2,})|)$/i
   validates_format_of :tel, :with => /^[0-9()-]*$/, :allow_nil => true, :message => "の書式が不正です"
 
index 0a9b828..e2fd0c3 100644 (file)
@@ -61,54 +61,80 @@ describe InquiriesController do
       assigns[:inquiry].email.should == "test@softbank.ne.jp"
       response.should be_success
     end
-  end
 
-  it "newに戻る場合(validateに引っかかる)" do
-    inquiry = inquiries(:inquiry_test_id_1)
-    inquiry.name = ""
-    get 'confirm', :inquiry => inquiry.attributes
-    response.should render_template("inquiries/new.html.erb")
+    it "newに戻る場合(validateに引っかかる)" do
+      inquiry = inquiries(:inquiry_test_id_1)
+      inquiry.name = ""
+      get 'confirm', :inquiry => inquiry.attributes
+      response.should render_template("inquiries/new.html.erb")
+    end
+
+    it "newに戻る場合(bodyの文字数制限)" do
+      inquiry = inquiries(:inquiry_test_id_1)
+      inquiry.body = "あ" * 43568
+      get 'confirm', :inquiry => inquiry.attributes
+      response.should render_template("inquiries/new.html.erb")
+    end
+
   end
 
+
   describe "GET 'complete'" do
     it "should be successful" do
-    inquiry = inquiries(:inquiry_test_id_1)
+      inquiry = inquiries(:inquiry_test_id_1)
       get 'complete', :inquiry => inquiry.attributes
       response.should be_success
     end
-  end
 
-  it "newに戻る場合(validateに引っかかる)" do
-    inquiry = inquiries(:inquiry_test_id_1)
-    inquiry.name = ""
-    get 'complete', :inquiry => inquiry.attributes
-    response.should render_template("inquiries/new.html.erb")
-  end
+    it "newに戻る場合(validateに引っかかる)" do
+      inquiry = inquiries(:inquiry_test_id_1)
+      inquiry.name = ""
+      get 'complete', :inquiry => inquiry.attributes
+      response.should render_template("inquiries/new.html.erb")
+    end
 
-  it "newに戻る場合(validateに引っかかる)(mobile)" do
-    inquiry = inquiries(:inquiry_test_id_1)
-    inquiry.name = ""
-    get 'complete', :inquiry => inquiry.attributes
-    response.should render_template("inquiries/new.html.erb")
-  end
+    it "newに戻る場合(bodyの文字数制限)" do
+      inquiry = inquiries(:inquiry_test_id_1)
+      inquiry.body = "あ" * 43568
+      get 'complete', :inquiry => inquiry.attributes
+      response.should render_template("inquiries/new.html.erb")
+    end
+
+    it "正常のケース" do
+      inquiry = inquiries(:inquiry_test_id_1)
+      inquiry.body = "あ" * 3000
+      get 'complete', :inquiry => inquiry.attributes
+      response.should be_success
+    end
+
+
+    it "newに戻る場合(validateに引っかかる)(mobile)" do
+      inquiry = inquiries(:inquiry_test_id_1)
+      inquiry.name = ""
+      get 'complete', :inquiry => inquiry.attributes
+      response.should render_template("inquiries/new.html.erb")
+    end
+
+    it "お問い合わせが完了する場合" do
+      Notifier.stub!(:deliver_pc_inquiry).and_return(nil)
+      Notifier.stub!(:deliver_received_inquiry).and_return(nil)
+      old_date_num = Inquiry.count
+      inquiry = inquiries(:inquiry_test_id_1)
+      get 'complete', :inquiry => inquiry.attributes
+      Inquiry.count.should == old_date_num + 1
+    end
+
+    it "お問い合わせが完了する場合(mobile)" do
+      request.user_agent = "DoCoMo/2.0 SH903i(c100;TB;W24H16)"
+      Notifier.stub!(:deliver_mobile_inquiry).and_return(nil)
+      Notifier.stub!(:deliver_received_inquiry).and_return(nil)
+      old_date_num = Inquiry.count
+      inquiry = inquiries(:inquiry_test_id_1)
+      get 'complete', :inquiry => inquiry.attributes
+      Inquiry.count.should == old_date_num + 1
+    end
 
-  it "お問い合わせが完了する場合" do
-    Notifier.stub!(:deliver_pc_inquiry).and_return(nil)
-    Notifier.stub!(:deliver_received_inquiry).and_return(nil)
-    old_date_num = Inquiry.count
-    inquiry = inquiries(:inquiry_test_id_1)
-    get 'complete', :inquiry => inquiry.attributes
-    Inquiry.count.should == old_date_num + 1
-  end
 
-  it "お問い合わせが完了する場合(mobile)" do
-    request.user_agent = "DoCoMo/2.0 SH903i(c100;TB;W24H16)"
-    Notifier.stub!(:deliver_mobile_inquiry).and_return(nil)
-    Notifier.stub!(:deliver_received_inquiry).and_return(nil)
-    old_date_num = Inquiry.count
-    inquiry = inquiries(:inquiry_test_id_1)
-    get 'complete', :inquiry => inquiry.attributes
-    Inquiry.count.should == old_date_num + 1
   end
 
   describe "GET 'show'" do