78 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			78 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
|  | #encoding: UTF-8 | ||
|  | require 'spec_helper' | ||
|  | 
 | ||
|  | describe AttributeFieldsHelper do | ||
|  |   describe "#attribute_field" do | ||
|  |     context "In the HTML,there should always be 'value' tag in it's name" | ||
|  | 
 | ||
|  |     before(:all) do | ||
|  |       @user = User.where(email:'chris@rulingcom.com').first | ||
|  |     end #end before | ||
|  |     # binding.pry | ||
|  |     LIST[:markups].each do |markup| | ||
|  |         it "should have 'value' when it's #{markup[0]} (no locale)" do | ||
|  |           title = "標題" | ||
|  |           pre_set_markup_value = case markup[0] | ||
|  |           when "select","checkbox","radio_button" | ||
|  |             '{"1"=>{"en"=>"Male", "zh_tw"=>"男性"}, "2"=>{"en"=>"Female", "zh_tw"=>"女性"}, "3"=>{"en"=>"Not public", "zh_tw"=>"不公開"}}' | ||
|  |           else | ||
|  |             nil | ||
|  |           end | ||
|  | 
 | ||
|  |           attribute_field=AttributeField.find_or_create_by(key:'Test',markup: markup[0],markup_value: pre_set_markup_value,:title=>title) | ||
|  | 
 | ||
|  |           html = attribute_field.block_helper(@user,1) | ||
|  | 
 | ||
|  |           nodes = Nokogiri::HTML.fragment(html).search('*[@func="input_unit"]') | ||
|  | 
 | ||
|  |           nodes.each do |input| | ||
|  |             attri = input.attributes["name"]  | ||
|  |             attri = input.children().first.attributes["name"] if (markup[0] == 'checkbox'  ||  markup[0] == 'radio_button' ) | ||
|  |             attri.to_s.should match /user\[.*attribute_values\]\[\d*\]\[value\].*/ | ||
|  |             # user[attribute_values][1][id] | ||
|  |             # user[attribute_values][1][value][en] | ||
|  |           end #end of input loop | ||
|  |         end # end of it | ||
|  |     end #end markups | ||
|  | 
 | ||
|  |         LIST[:markups].each do |markup| | ||
|  |           if markup[1]["muti_lang_input_supprt"] | ||
|  |             [true,false].each do |locale_sat| | ||
|  |               title = locale_sat ? {"en"=>"Title", "zh_tw"=>"標題"} : "標題"  | ||
|  |               it "should have 'value' when it's #{markup[0]} for locale => #{locale_sat}" do | ||
|  |                 pre_set_markup_value = case markup[0] | ||
|  |                 when "select","checkbox","radio_button" | ||
|  |                   '{"1"=>{"en"=>"Male", "zh_tw"=>"男性"}, "2"=>{"en"=>"Female", "zh_tw"=>"女性"}, "3"=>{"en"=>"Not public", "zh_tw"=>"不公開"}}' | ||
|  |                 else | ||
|  |                   nil | ||
|  |                 end | ||
|  |                 if (markup[0] == "text_field" || markup[0] == "text_area") && (locale_sat == false) | ||
|  |                   # binding.pry  | ||
|  |                 end | ||
|  |                 attribute_field=AttributeField.find_or_create_by(key:'Test',markup: markup[0],markup_value: pre_set_markup_value,:title=>title,:locale => locale_sat) | ||
|  |                  | ||
|  |                 html = attribute_field.block_helper(@user,1) | ||
|  |                  | ||
|  |                 # p html | ||
|  |                 nodes = Nokogiri::HTML.fragment(html).search('*[@func="input_unit"]') | ||
|  |                 nodes.each do |input| | ||
|  |                   input.attributes["name"].to_s.should match /user\[.*attribute_values\]\[\d*\]\[value\].*/ | ||
|  |                   # user[attribute_values][1][id] | ||
|  |                   # user[attribute_values][1][value][en] | ||
|  |                 end #end of input loop | ||
|  |                 nodes = Nokogiri::HTML.fragment(html).search('*[@func="field_label"]') | ||
|  | 
 | ||
|  |                 nodes.each do |input| | ||
|  |                   # p input.to_s | ||
|  |                   # binding.pry if  | ||
|  | 
 | ||
|  |                   input.children.text.should match "標題" | ||
|  |                 end # end of field_label loop | ||
|  |               end # end of it | ||
|  |             end # end of T/F | ||
|  |           end# end of if support | ||
|  |     end #end markups | ||
|  | 
 | ||
|  | 
 | ||
|  |   end | ||
|  | end |