ViewFilterTest.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace Elgg\Amd;
  3. class ViewFilterTest extends \PHPUnit_Framework_TestCase {
  4. public function testHandlesShortViewNames() {
  5. $viewFilter = new \Elgg\Amd\ViewFilter();
  6. $originalContent = "define({})";
  7. $this->assertEquals('define("foo", {})', $viewFilter->filter('foo.js', $originalContent));
  8. }
  9. public function testInsertsNamesForAnonymousModules() {
  10. $viewFilter = new \Elgg\Amd\ViewFilter();
  11. $originalContent = "// Comment\ndefine({})";
  12. $filteredContent = $viewFilter->filter('js/my/mod.js', $originalContent);
  13. $this->assertEquals("// Comment\ndefine(\"my/mod\", {})", $filteredContent);
  14. }
  15. public function testAllowsWhitespacePrecedingDefine() {
  16. $viewFilter = new \Elgg\Amd\ViewFilter();
  17. $originalContent = "// Comment\n\t define({})";
  18. $filteredContent = $viewFilter->filter('js/my/mod.js', $originalContent);
  19. $this->assertEquals("// Comment\n\t define(\"my/mod\", {})", $filteredContent);
  20. }
  21. public function testLeavesNamedModulesAlone() {
  22. $viewFilter = new \Elgg\Amd\ViewFilter();
  23. $originalContent = "// Comment\ndefine('any/mod', {})";
  24. $filteredContent = $viewFilter->filter('js/my/mod.js', $originalContent);
  25. $this->assertEquals($originalContent, $filteredContent);
  26. }
  27. public function testExtensionlessViewsMustBeInJs() {
  28. $viewFilter = new \Elgg\Amd\ViewFilter();
  29. $originalContent = "// Comment\ndefine({})";
  30. $filteredContent = $viewFilter->filter('nonjs/foobar/my/mod', $originalContent);
  31. $this->assertEquals($originalContent, $filteredContent);
  32. }
  33. public function testIgnoresNonJsExtensions() {
  34. $viewFilter = new \Elgg\Amd\ViewFilter();
  35. $originalContent = "// Comment\ndefine('any/mod', {})";
  36. $filteredContent = $viewFilter->filter('js/foobar/my/mod.jst', $originalContent);
  37. $this->assertEquals($originalContent, $filteredContent);
  38. }
  39. }