Sha256: 1ba972a775e1fe118da2f73fb8b27813a8a6b1714d421c6147dcfc34b21b8868

Contents?: true

Size: 2 KB

Versions: 1

Compression:

Stored size: 2 KB

Contents

require 'spec/spec_helper'

module LessEngineSpecHelper
  def lessify arg
    if arg.is_a? String or arg.is_a? File
      return Less::Engine.new(arg).to_css
    else
      lessify File.new("spec/less/#{arg}-1.0.less")
    end
  end
  
  def css file
    File.read("spec/css/#{file}-1.0.css")
  end
end

describe Less::Engine do
  include LessEngineSpecHelper

  describe "to_css" do
    it "should parse css" do
      lessify(:css).should == css(:css)
    end
    
    it "should parse comments" do
      lessify(:comments).should == css(:comments)
    end
    
    it "should deal with whitespace" do
      lessify(:whitespace).should == css(:whitespace)
    end
    
    it "should parse nested rules" do
      lessify(:rulesets).should == css(:rulesets)
    end
    
    it "should parse variables" do
      lessify(:variables).should == css(:variables)
    end
    
    it "should parse operations" do
      lessify(:operations).should == css(:operations)
    end
    
    it "should manage scope" do
      lessify(:scope).should == css(:scope)
    end
    
    it "should parse strings" do
      lessify(:strings).should == css(:strings)
    end
    
    it "should parse accessors" do
      lessify(:accessors).should == css(:accessors)
    end
    
    it "should parse colors in hex" do
      lessify(:colors).should == css(:colors)
    end
    
    it "should parse mixins" do
      lessify(:mixins).should == css(:mixins)
    end

    it "should handle custom functions" do
      module Less::Functions
        def color arg
          Less::Node::Color.new("#999999") if arg == "evil red"
        end
        
        def increment a
          Less::Node::Number.new(a.to_i + 1)
        end
        
        def add a, b
          Less::Node::Number.new(a + b)
        end
      end
      lessify(:functions).should == css(:functions)
    end
    
    it "should work with import" do
      lessify(:import).should == css(:import)
    end
    
    it "should parse a big file"
    it "should handle complex color operations"
  end
end


Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
less-1.0.8 spec/engine_spec.rb