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 |