/**
  * @testdox OptimizeObject tests
  * @dataProvider getOptimizeObjectTests
  */
 public function testOptimizeObject($original, $expected, $objects)
 {
     $encoder = new Encoder();
     $optimizer = new ConfigOptimizer($encoder);
     $config = $optimizer->optimize($original);
     $this->assertSame($expected, $encoder->encode($config));
     $this->assertSame(implode("\n", $objects), rtrim($optimizer->getVarDeclarations()));
 }
Example #2
0
 /**
  * @testdox encode() properly encodes deduplicated config values
  */
 public function testEncodeDeduplicatedConfigValue()
 {
     $configValue = new ConfigValue([0, 0], 'o82015558');
     $configValue->incrementUseCount();
     $configValue->incrementUseCount();
     $configValue->deduplicate();
     $encoder = new Encoder();
     $this->assertSame('o82015558', $encoder->encode($configValue));
 }
Example #3
0
 /**
  * Encode a PHP value into an equivalent JavaScript representation
  *
  * @param  mixed  $value Original value
  * @return string        JavaScript representation
  */
 protected function encode($value)
 {
     return $this->encoder->encode($value);
 }