You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
zhishifufei_php/public/pc/plugins/require-css/test/test.js

88 lines
3.0 KiB

var requirejs = require('requirejs');
var passed = 0;
var failed = 0;
var assert = function(name, statement, val) {
if (statement === val) {
console.log(' ' + name + '... passed.');
passed++;
}
else {
console.log(' ' + name + '... failed.\n ' + 'Expected "' + val + '" got "' + statement + '"\n');
failed++;
}
}
requirejs(['../css', '../normalize'], function(css, normalize) {
console.log('\n--- Starting Require CSS Tests ---');
console.log('\nTesting URL Base Conversions');
assert(
'Changing subfolder',
normalize.convertURIBase('test', '/one/two/', '/one/three/'),
'../two/test'
);
assert(
'Changing subfolder with backtrack',
normalize.convertURIBase('../test', '/one/two/', '/one/three/'),
'../test'
);
assert(
'Changing two subfolders with a folder',
normalize.convertURIBase('some/test', '/one/two/three/', '/one/four/five/'),
'../../two/three/some/test'
);
assert(
'Double forward slashes in relative URI',
normalize.convertURIBase('some//test', '/one/two/three/', '/one/two/four/'),
'../three/some/test'
);
assert(
'protocol base urls work',
normalize.convertURIBase('some/file', 'http://www.google.com:80/', 'http://www.google.com:80/sub/'),
'../some/file'
);
assert(
'absolute protocol paths work with base conversion',
normalize.convertURIBase('some/file', 'http://some.cdn.com/baseUrl/', 'baseUrl/'),
'http://some.cdn.com/baseUrl/some/file'
);
console.log('\nTesting Stylesheet Regular Expressions');
assert(
'@import statements',
normalize('@import "test.css"', '/first/', '/second/'),
'@import "../first/test.css"'
);
assert(
'url includes',
normalize('background: url("../some/test.css")', '/first/one/', '/second/one/'),
'background: url("../../first/some/test.css")'
);
assert(
'absolute url detection',
normalize.absoluteURI("//font.server.com/static/fonts/opensans.woff", '/first/one/', '/second/one/'),
'//font.server.com/static/fonts/opensans.woff'
);
assert(
'absolute url convert base',
normalize.convertURIBase("//font.server.com/static/fonts/opensans.woff", '/first/one/', '/second/one/'),
'//font.server.com/static/fonts/opensans.woff'
);
assert(
'absolute url convert base',
normalize.convertURIBase("http://font.server.com/static/fonts/opensans.woff", '/first/one/', '/second/one/'),
'http://font.server.com/static/fonts/opensans.woff'
);
assert(
'multiple url includes on the same line',
normalize('src: url("../fonts/font.eot") format("embedded-opentype"), url("../fonts/font.woff") format("woff");', '/base/', '/'),
'src: url("fonts/font.eot") format("embedded-opentype"), url("fonts/font.woff") format("woff");'
);
assert(
'absolute URI test',
normalize.absoluteURI('/my/file.less', 'http://localhost:8000/'),
'/my/file.less'
);
console.log('\n--- Require CSS Tests Complete: ' + passed + ' passed, ' + failed + ' failed. ---\n');
});