UNPKG

raptor

Version:

RaptorJS provides an AMD module loader that works in Node, Rhino and the web browser. It also includes various sub-modules to support building optimized web applications.

59 lines (51 loc) 2.14 kB
require('./_helper.js'); var raptor = require('raptor'); var define = raptor.createDefine(module); var logger = require('raptor/logging').logger("raptor-css-parser-spec"), findUrls = function(path) { try { var File = require('raptor/files/File'); var cssFile = new File(__dirname, path); var code = cssFile.readAsString(); var cssParser = require('raptor/css-parser'); var urls = {}; cssParser.findUrls(code, function(url, index, endIndex) { urls[url] = [index, endIndex]; }); return urls; } catch(e) { logger.error(e); throw raptor.createError(new Error('Unable to find URLs in CSS at path "' + path + '". Exception: ' + e.toString()), e); } }, replaceUrls = function(path, callback, thisObj) { try { var File = require('raptor/files/File'); var cssFile = new File(__dirname, path); var code = cssFile.readAsString(); var cssParser = require('raptor/css-parser'); return cssParser.replaceUrls(code, callback, thisObj); } catch(e) { logger.error(e); throw raptor.createError(new Error('Unable to replace URLs in CSS at path "' + path + '". Exception: ' + e.toString()), e); } }; describe('css-parser module', function() { it('should handle replacements for a simple CSS file', function() { var code = replaceUrls('resources/css-parser/simple.css', function(url) { return url.toUpperCase(); }); expect(code).toEqual(".test { background-image: url(IMAGE1.PNG); }\n.test2 { background-image: url(IMAGE2.PNG); }"); }); it('should handle generic CSS file', function() { var urls = findUrls('resources/css-parser/style.css'); expect(Object.keys(urls).length).toEqual(3); expect(urls['d.png']).toNotEqual(null); expect(urls['throbber.gif']).toNotEqual(null); expect(urls['d.gif']).toNotEqual(null); }); });