| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 | 
							- <?php
 
- require_once __DIR__ . "/../lessc.inc.php";
 
- class ApiTest extends PHPUnit_Framework_TestCase {
 
- 	public function setUp() {
 
- 		$this->less = new lessc();
 
- 		$this->less->importDir = array(__DIR__ . "/inputs/test-imports");
 
- 	}
 
- 	public function testPreserveComments() {
 
- 		$input = <<<EOD
 
- // what is going on?
 
- /** what the heck **/
 
- /**
 
- Here is a block comment
 
- **/
 
- // this is a comment
 
- /*hello*/div /*yeah*/ { //surew
 
- 	border: 1px solid red; // world
 
- 	/* another property */
 
- 	color: url('http://mage-page.com');
 
- 	string: "hello /* this is not a comment */";
 
- 	world: "// neither is this";
 
- 	string: 'hello /* this is not a comment */' /*what if this is a comment */;
 
- 	world: '// neither is this' // hell world;
 
- 	;
 
- 	what-ever: 100px;
 
- 	background: url(/*this is not a comment?*/); // uhh what happens here
 
- }
 
- EOD;
 
- 		$outputWithComments = <<<EOD
 
- /** what the heck **/
 
- /**
 
- Here is a block comment
 
- **/
 
- /*hello*/
 
- /*yeah*/
 
- div /*yeah*/ {
 
-   /* another property */
 
-   border: 1px solid red;
 
-   color: url('http://mage-page.com');
 
-   string: "hello /* this is not a comment */";
 
-   world: "// neither is this";
 
-   /*what if this is a comment */
 
-   string: 'hello /* this is not a comment */';
 
-   world: '// neither is this';
 
-   what-ever: 100px;
 
-   /*this is not a comment?*/
 
-   background: url();
 
- }
 
- EOD;
 
- 		$outputWithoutComments = <<<EOD
 
- div {
 
-   border: 1px solid red;
 
-   color: url('http://mage-page.com');
 
-   string: "hello /* this is not a comment */";
 
-   world: "// neither is this";
 
-   string: 'hello /* this is not a comment */';
 
-   world: '// neither is this';
 
-   what-ever: 100px;
 
-   background: url(/*this is not a comment?*/);
 
- }
 
- EOD;
 
- 		$this->assertEquals($this->compile($input), trim($outputWithoutComments));
 
- 		$this->less->setPreserveComments(true);
 
- 		$this->assertEquals($this->compile($input), trim($outputWithComments));
 
- 	}
 
- 	public function testOldInterface() {
 
- 		$this->less = new lessc(__DIR__ . "/inputs/hi.less");
 
- 		$out = $this->less->parse(array("hello" => "10px"));
 
- 		$this->assertEquals(trim($out), trim('
 
- div:before {
 
-   content: "hi!";
 
- }'));
 
- 	}
 
- 	public function testInjectVars() {
 
- 		$out = $this->less->parse(".magic { color: @color;  width: @base - 200; }",
 
- 			array(
 
- 				'color' => 'red',
 
- 				'base' => '960px'
 
- 			));
 
- 	
 
- 		$this->assertEquals(trim($out), trim("
 
- .magic {
 
-   color: red;
 
-   width: 760px;
 
- }"));
 
- 	}
 
- 	public function testDisableImport() {
 
- 		$this->less->importDisabled = true;
 
- 		$this->assertEquals(
 
- 			"/* import disabled */",
 
- 			$this->compile("@import 'file3';"));
 
- 	}
 
- 	public function testUserFunction() {
 
- 		$this->less->registerFunction("add-two", function($list) {
 
- 			list($a, $b) = $list[2];
 
- 			return $a[1] + $b[1];
 
- 		});
 
- 		$this->assertEquals(
 
- 			$this->compile("result: add-two(10, 20);"),
 
- 			"result: 30;");
 
- 		
 
- 		return $this->less;
 
- 	}
 
- 	/**
 
- 	 * @depends testUserFunction
 
- 	 */
 
- 	public function testUnregisterFunction($less) {
 
- 		$less->unregisterFunction("add-two");
 
- 		$this->assertEquals(
 
- 			$this->compile("result: add-two(10, 20);"),
 
- 			"result: add-two(10,20);");
 
- 	}
 
- 	public function testFormatters() {
 
- 		$src = "
 
- 			div, pre {
 
- 				color: blue;
 
- 				span, .big, hello.world {
 
- 					height: 20px;
 
- 					color:#ffffff + #000;
 
- 				}
 
- 			}";
 
- 		$this->less->setFormatter("compressed");
 
- 		$this->assertEquals(
 
- 			$this->compile($src), "div,pre{color:blue;}div span,div .big,div hello.world,pre span,pre .big,pre hello.world{height:20px;color:#fff;}");
 
- 		// TODO: fix the output order of tags
 
- 		$this->less->setFormatter("lessjs");
 
- 		$this->assertEquals(
 
- 			$this->compile($src),
 
- "div,
 
- pre {
 
-   color: blue;
 
- }
 
- div span,
 
- div .big,
 
- div hello.world,
 
- pre span,
 
- pre .big,
 
- pre hello.world {
 
-   height: 20px;
 
-   color: #ffffff;
 
- }");
 
- 		$this->less->setFormatter("classic");
 
- 		$this->assertEquals(
 
- 			$this->compile($src),
 
- trim("div, pre { color:blue; }
 
- div span, div .big, div hello.world, pre span, pre .big, pre hello.world {
 
-   height:20px;
 
-   color:#ffffff;
 
- }
 
- "));
 
- 	}
 
- 	public function compile($str) {
 
- 		return trim($this->less->parse($str));
 
- 	}
 
- }
 
 
  |