diff --git a/cocos2d/core/renderer/canvas/renderers/sprite/index.js b/cocos2d/core/renderer/canvas/renderers/sprite/index.js index 4ffa73820f7..3df28b1d657 100644 --- a/cocos2d/core/renderer/canvas/renderers/sprite/index.js +++ b/cocos2d/core/renderer/canvas/renderers/sprite/index.js @@ -30,6 +30,11 @@ let simple = require('./simple'); let sliced = require('./sliced'); let tiled = require('./tiled'); +if (CC_TEST) { + // 2.x not support test with the canvas simple, in order to test in local test construct. + cc._Test._spriteWebGLAssembler = require('../../../webgl/assemblers/sprite/index.js'); +} + module.exports = { getAssembler: function (sprite) { switch (sprite.type) { @@ -52,4 +57,4 @@ module.exports = { createData (sprite) { return sprite._assembler.createData(sprite); } -}; \ No newline at end of file +}; diff --git a/test/qunit/unit-es5/test-spriteRenderer.js b/test/qunit/unit-es5/test-spriteRenderer.js index b39de423b70..96e215b378e 100644 --- a/test/qunit/unit-es5/test-spriteRenderer.js +++ b/test/qunit/unit-es5/test-spriteRenderer.js @@ -1,6 +1,13 @@ largeModule('Sprite'); +var originalAssembler = cc.Sprite._assembler; +var originalCalDynamicAtlas = cc.Sprite.prototype._calDynamicAtlas; + test('basic test', function () { + // + cc.Sprite._assembler = cc._Test._spriteWebGLAssembler; + cc.Sprite.prototype._calDynamicAtlas = function () {}; + var url = assetDir + '/button.png'; var node = new cc.Node(); @@ -143,8 +150,8 @@ if (!isPhantomJS) { var vertices = sprite._renderData._data; var uvs = sprite._spriteFrame.uvSliced; - strictEqual(uvs.length == 16, true, 'have 16 uvs'); - strictEqual(vertices.length == 20, true, 'have 20 vertices'); + strictEqual(uvs.length === 16, true, 'have 16 uvs'); + strictEqual(vertices.length === 20, true, 'have 20 vertices'); strictEqual(vertices[4].x, 0, 'x0 test success'); strictEqual(vertices[4].y, 0, 'y0 test success'); strictEqual(vertices[9].x, 5, 'x1 test success'); @@ -190,8 +197,9 @@ if (!isPhantomJS) { sprite._assembler.updateRenderData(sprite); var vertices = sprite._renderData._data; + var uvs = sprite._spriteFrame.uv; - strictEqual(vertices.length == 8, true, 'have 8 vertices'); + strictEqual(vertices.length === 8, true, 'have 8 vertices'); strictEqual(vertices[0].x, 0, 'x0 test success'); strictEqual(vertices[1].x, 40, 'x1 test success'); strictEqual(vertices[2].x, 80, 'x2 test success'); @@ -200,14 +208,10 @@ if (!isPhantomJS) { strictEqual(vertices[1].y, 60, 'y1 test success'); strictEqual(vertices[2].y, 100, 'y2 test success'); // - deepClose(vertices[0].u, 10 / 100, 0.01, 'full quad u0 test success'); - deepClose(vertices[0].v, 70 / 100, 0.01, 'full quad v0 test success'); - deepClose(vertices[3].u, 50 / 100, 0.01, 'full quad u1 test success'); - deepClose(vertices[3].v, 10 / 100, 0.01, 'full quad v1 test success'); - deepClose(vertices[4].u, 10 / 100, 0.01, 'part quad u0 test success'); - deepClose(vertices[4].v, 70 / 100, 0.01, 'part quad v0 test success'); - deepClose(vertices[7].u, 30 / 100, 0.01, 'part quad u1 test success'); - deepClose(vertices[7].v, 30 / 100, 0.01, 'part quad v1 test success'); + deepClose(uvs[0], 10 / 100, 0.01, 'full quad u0 test success'); + deepClose(uvs[1], 70 / 100, 0.01, 'full quad v0 test success'); + deepClose(uvs[6], 50 / 100, 0.01, 'full quad u1 test success'); + deepClose(uvs[7], 10 / 100, 0.01, 'full quad v1 test success'); }; if (spriteFrame.textureLoaded()) { testCallBack(); @@ -364,6 +368,10 @@ if (!isPhantomJS) { deepClose(vertices[4].y, p1.y, 0.01, 'p1 test success'); deepClose(vertices[5].x, p2.x, 0.01, 'p2 test success'); deepClose(vertices[5].y, p2.y, 0.01, 'p2 test success'); + + // + cc.Sprite._assembler = originalAssembler; + cc.Sprite.prototype._calDynamicAtlas = originalCalDynamicAtlas; }; if (spriteFrame.textureLoaded()) { testCallBack();