Sha256: d3f78871e3ac486b390ee07c823ec2407f90547b73b21a4653ae4edd710cc8f9

Contents?: true

Size: 1.47 KB

Versions: 18

Compression:

Stored size: 1.47 KB

Contents

require File.expand_path(File.join(File.dirname(__FILE__), "helper"))

class TestCssCache < Nokogiri::TestCase

  def setup
    super
    @css = "a1 > b2 > c3"
    @parse_result = Nokogiri::CSS.parse(@css)
    @to_xpath_result = @parse_result.map {|ast| ast.to_xpath}
    Nokogiri::CSS::Parser.class_eval do
      class << @cache
        alias :old_bracket :[]
        attr_reader :count
        def [](key)
          @count ||= 0
          @count += 1
          old_bracket(key)
        end
      end
    end
    assert Nokogiri::CSS::Parser.cache_on?
  end

  def teardown
    Nokogiri::CSS::Parser.clear_cache
    Nokogiri::CSS::Parser.set_cache true
  end

  [ false, true ].each do |cache_setting|
    define_method "test_css_cache_#{cache_setting ? "true" : "false"}" do
      times = cache_setting ? 4 : nil

      Nokogiri::CSS::Parser.set_cache cache_setting
      
      Nokogiri::CSS.xpath_for(@css)
      Nokogiri::CSS.xpath_for(@css)
      Nokogiri::CSS::Parser.new.xpath_for(@css)
      Nokogiri::CSS::Parser.new.xpath_for(@css)

      assert_equal(times, Nokogiri::CSS::Parser.class_eval { @cache.count })
    end

    define_method "test_hpricot_cache_#{cache_setting ? "true" : "false"}" do
      times = cache_setting ? 2 : nil
      Nokogiri::CSS::Parser.set_cache cache_setting

      nh = Nokogiri.Hpricot("<html></html>")

      nh.convert_to_xpath(@css)
      nh.convert_to_xpath(@css)
      assert_equal(times, Nokogiri::CSS::Parser.class_eval { @cache.count })
    end
  end


end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
nokogiri-1.3.2-x86-mswin32 test/test_css_cache.rb
nokogiri-1.3.2-x86-mingw32 test/test_css_cache.rb
nokogiri-1.3.2-java test/test_css_cache.rb
nokogiri-1.3.0-x86-mingw32 test/test_css_cache.rb
nokogiri-1.3.2 test/test_css_cache.rb
nokogiri-1.2.2-x86-mswin32-60 test/test_css_cache.rb
nokogiri-1.2.2 test/test_css_cache.rb
nokogiri-1.2.2-java test/test_css_cache.rb
nokogiri-1.2.3-x86-mswin32-60 test/test_css_cache.rb
nokogiri-1.2.3-java test/test_css_cache.rb
nokogiri-1.3.0-java test/test_css_cache.rb
nokogiri-1.2.3 test/test_css_cache.rb
nokogiri-1.3.0 test/test_css_cache.rb
nokogiri-1.3.0-x86-mswin32 test/test_css_cache.rb
nokogiri-1.3.1-x86-mingw32 test/test_css_cache.rb
nokogiri-1.3.1-java test/test_css_cache.rb
nokogiri-1.3.1 test/test_css_cache.rb
nokogiri-1.3.1-x86-mswin32 test/test_css_cache.rb