提交 7e78f9a4 编写于 作者: M Mugen87

LoadingManager: Make .getHandler() more robust.

上级 b82b3082
......@@ -121,6 +121,8 @@ function LoadingManager( onLoad, onProgress, onError ) {
var regex = handlers[ i ];
var loader = handlers[ i + 1 ];
if ( regex.global ) regex.lastIndex = 0; // see #17920
if ( regex.test( file ) ) {
return loader;
......
......@@ -4,6 +4,7 @@
/* global QUnit */
import { LoadingManager } from '../../../../src/loaders/LoadingManager';
import { Loader } from '../../../../src/loaders/Loader';
export default QUnit.module( 'Loaders', () => {
......@@ -59,6 +60,28 @@ export default QUnit.module( 'Loaders', () => {
} );
QUnit.test( "getHandler", ( assert ) => {
const loadingManager = new LoadingManager();
const loader = new Loader();
const regex1 = /\.jpg$/i;
const regex2 = /\.jpg$/gi;
loadingManager.addHandler( regex1, loader );
assert.equal( loadingManager.getHandler( 'foo.jpg' ), loader, 'Returns the expected loader.' );
assert.equal( loadingManager.getHandler( 'foo.jpg.png' ), null, 'Returns null since the correct file extension is not at the end of the file name.' );
assert.equal( loadingManager.getHandler( 'foo.jpeg' ), null, 'Returns null since file extension is wrong.' );
loadingManager.removeHandler( regex1 );
loadingManager.addHandler( regex2, loader );
assert.equal( loadingManager.getHandler( 'foo.jpg' ), loader, 'Returns the expected loader when using a regex with "g" flag.' );
assert.equal( loadingManager.getHandler( 'foo.jpg' ), loader, 'Returns the expected loader when using a regex with "g" flag. Test twice, see #17920.' );
} );
} );
} );
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册