Sha256: 2e67459ec81804489f6d72f22642051e9aef395c60fbb91d6076ab5f4808b873

Contents?: true

Size: 1.4 KB

Versions: 9

Compression:

Stored size: 1.4 KB

Contents

require "rubygems"
require "bundler/setup"

require "minitest/autorun"
require "minitest/rg"
require "debugger"

require "csscss"

module TypeHelpers
  def sel(s)
    Csscss::Selector.new(s)
  end

  def dec(p, v)
    Csscss::Declaration.new(p, v)
  end

  def rs(selectors, decs)
    Csscss::Ruleset.new(selectors, decs)
  end
end

module MiniTest::Assertions
  def assert_parse(parser, string)
    assert parser.parse(string)
  rescue Parslet::ParseFailed => ex
    assert false, ex.cause.ascii_tree
  end

  def assert_not_parse(parser, string)
    parser.parse(string)
    assert false, "expected #{parser} to not successfully parse \"#{string}\" and it did"
  rescue Parslet::ParseFailed => ex
    assert ex
  end
end

Parslet::Atoms::DSL.infect_an_assertion :assert_parse, :must_parse, :do_not_flip
Parslet::Atoms::DSL.infect_an_assertion :assert_not_parse, :wont_parse, :do_not_flip

module CommonParserTests
  def self.included(base)
    base.instance_eval do
      include Helpers
      include TypeHelpers

      describe "common parser tests" do
        it "parses inherit" do
          trans("inherit").must_equal([])
        end

        it "doesn't parse unknown values" do
          @parser.wont_parse("foo")
        end
      end
    end
  end

  module Helpers
    def trans(s)
      @trans.apply(@parser.parse(s))
    rescue Parslet::ParseFailed => e
      puts e.cause.ascii_tree
      raise e
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
csscss-1.3.2 test/test_helper.rb
csscss-1.3.1 test/test_helper.rb
csscss-1.3.0 test/test_helper.rb
csscss-1.2.0 test/test_helper.rb
csscss-1.1.0 test/test_helper.rb
csscss-1.0.0 test/test_helper.rb
csscss-0.2.1 test/test_helper.rb
csscss-0.2.0 test/test_helper.rb
csscss-0.1.0 test/test_helper.rb