Class Rainpress::TestPacker
In: rainpress/packer_test.rb
Parent: Test::Unit::TestCase
Test::Unit::TestCase TestPacker Packer Rainpress dot/f_0.png

This class keeps all Tests for the class Rainpress::Packer

Author:Uwe L. Korn <uwelk@xhochy.org>

Methods

Public Instance methods

Create an instace of Rainpress::Packer for use in the tests

[Source]

# File rainpress/packer_test.rb, line 41
    def setup
      @packer = Rainpress::Packer.new
    end

Test Rainpress::Packer.do_misc

[Source]

# File rainpress/packer_test.rb, line 169
    def test_do_misc
      options = {
        :preserveComments => true,
        :preserveNewlines => true,
        :preserveSpaces => true,
        :preserveColors => true,
        :skipMisc => false
      }  
      # Replace 0(pt,px,em,%) with 0
      input = ' 0px'
      assert_equal(' 0', @packer.compress(input, options))
      input = ' 0em'
      assert_equal(' 0', @packer.compress(input, options))
      input = ' 0pt'
      assert_equal(' 0', @packer.compress(input, options))
      input = ' 0%'
      assert_equal(' 0', @packer.compress(input, options))
      input = ' 0in'
      assert_equal(' 0', @packer.compress(input, options))
      input = ' 0cm '
      assert_equal(' 0 ', @packer.compress(input, options))
      input = ':0mm'
      assert_equal(':0', @packer.compress(input, options))
      input = ' 0pc'
      assert_equal(' 0', @packer.compress(input, options))
      input = '  0ex'
      assert_equal('  0', @packer.compress(input, options))
      input = ' 10ex'
      assert_equal(' 10ex', @packer.compress(input, options))
      
      # Replace 0 0 0 0; with 0.
      input = ':0 0;'
      assert_equal(':0;', @packer.compress(input, options))
      input = ':0 0 0;'
      assert_equal(':0;', @packer.compress(input, options))
      input = ':0 0 0 0;'
      assert_equal(':0;', @packer.compress(input, options))
      input = ':0 0 0 0}'
      assert_equal(':0}', @packer.compress(input, options))
      # Keep 'background-position:0 0;' !!
      input = 'background-position:0 0;'
      assert_equal('background-position:0 0;', @packer.compress(input, options))
      
      # Replace 0.6 to .6, but only when preceded by : or a white-space
      input = ' 0.6'
      assert_equal(' .6', @packer.compress(input, options))
      input = ':0.06'
      assert_equal(':.06', @packer.compress(input, options))
      input = '10.6'
      assert_equal('10.6', @packer.compress(input, options))
      
      # Replace ;;;; with ;
      input = 'ss;;;ss'
      assert_equal('ss;ss', @packer.compress(input, options))
      
      # Replace ;} with }
      input = 'ss;sss;}ss'
      assert_equal('ss;sss}ss', @packer.compress(input, options))
      
      # Replace background-color: with background:
      input = 'background-color:'
      assert_equal('background:', @packer.compress(input, options))
      
      # Replace font-weight:normal; with 400, bold with 700
      input = 'font-weight: normal;'
      assert_equal('font-weight:400;', @packer.compress(input, options))
      input = 'font: normal;'
      assert_equal('font: 400;', @packer.compress(input, options))
      input = 'font: bold 1px;'
      assert_equal('font: 700 1px;', @packer.compress(input, options))
    end

Test Rainpress::Packer.remove_comments

[Source]

# File rainpress/packer_test.rb, line 46
    def test_remove_comments
      options = {
        :preserveComments => false,
        :preserveNewlines => true,
        :preserveSpaces => true,
        :preserveColors => true,
        :skipMisc => true
      }  
      
      # plain comment -> ''
      input = '/* sss */';
      assert_equal('', @packer.compress(input, options))
      
      # no comment -> no change
      input = 'sss';
      assert_equal('sss', @packer.compress(input, options))
      
      # comment floating in text            
      input = 's/*ss*/ss';
      assert_equal('sss', @packer.compress(input, options))            
      
      # empty string
      input = ''
      assert_equal('', @packer.compress(input, options))
    end

Test Rainpress::Packer.remove_newlines

[Source]

# File rainpress/packer_test.rb, line 73
    def test_remove_newlines
      options = {
        :preserveComments => true,
        :preserveNewlines => false,
        :preserveSpaces => true,
        :preserveColors => true,
        :skipMisc => true
      }  
    
      # plain unix-newline
      input = "\n"
      assert_equal('', @packer.compress(input, options))
    
      # plain windows newline
      input = "\r\n"
      assert_equal('', @packer.compress(input, options))
    
      # no newline
      input = "rn"
      assert_equal('rn', @packer.compress(input, options))
    
      # newlines floatin in text
      input = "sss\n||\r\nsss"
      assert_equal('sss||sss', @packer.compress(input, options))
    
      # empty string
      input = ''
      assert_equal('', @packer.compress(input, options))
    end

Test Rainpress::Packer.remove_spaces

[Source]

# File rainpress/packer_test.rb, line 104
    def test_remove_spaces
      options = {
        :preserveComments => true,
        :preserveNewlines => true,
        :preserveSpaces => false,
        :preserveColors => true,
        :skipMisc => true
      }  
      
      # (a) Turn mutiple Spaces into a single, but not less
      input = '  ' # 2 spaces
      assert_equal(' ', @packer.compress(input, options))
      input = '   ' # 3 spaces
      assert_equal(' ', @packer.compress(input, options))
      
      # (b) remove spaces around ;:{},
      input = ' ; '
      assert_equal(';', @packer.compress(input, options))
      input = ' : '
      assert_equal(':', @packer.compress(input, options))
      input = ' { '
      assert_equal('{', @packer.compress(input, options))
      input = ' } '
      assert_equal('}', @packer.compress(input, options))
      input = ' , '
      assert_equal(',', @packer.compress(input, options))
      # (c) remove tabs
      input = "\t"
      assert_equal('', @packer.compress(input, options))
    end

Test Rainpress::Packer.shorten_colors

[Source]

# File rainpress/packer_test.rb, line 136
    def test_shorten_colors
      options = {
        :preserveComments => true,
        :preserveNewlines => true,
        :preserveSpaces => true,
        :preserveColors => false,
        :skipMisc => true
      } 
      # rgb(50,101,152) to #326598
      input = 'color:rgb(12,101,152)'
      assert_equal('color:#0c6598', @packer.compress(input, options))
      
      # #AABBCC to #ABC
      input = 'color:#AAbBCC'
      assert_equal('color:#abc', @packer.compress(input, options))
      # Keep chroma(color="#FFFFFF"); ... due to IE
      input = 'chroma(color="#FFFFFF");'
      assert_equal('chroma(color="#FFFFFF");', @packer.compress(input, options))
      
      # shorten several names to numbers
      input = 'color:white;'
      assert_equal('color:#fff;', @packer.compress(input, options))
      input = 'color: white}'
      assert_equal('color:#fff}', @packer.compress(input, options))
      
      # shotern several numbers to names
      input = 'color:#ff0000;'
      assert_equal('color:red;', @packer.compress(input, options))
      input = 'color:#F00;'
      assert_equal('color:red;', @packer.compress(input, options))
    end

[Validate]