Skip to content

Commit

Permalink
add tests for GLU_INVALID_ENUM and GLU_INVALID_VALUE
Browse files Browse the repository at this point in the history
  • Loading branch information
brendankenny committed Oct 22, 2014
1 parent 57754e2 commit cc591f7
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 0 deletions.
44 changes: 44 additions & 0 deletions test/browser/tests-browserified.js
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,48 @@ suite('Explicit Error States', function() {
assert.deepEqual(resultVerts, [], 'no output should be generated');
});
});

// not technically one of the main errors; possibly this should live in
// basics.test.js
suite('GLU_INVALID_ENUM', function() {
test('should throw on setting non-existent property', function() {
var tess = createTessellator(libtess);
assert.throw(tess.gluTessProperty.bind(tess,
libtess.gluEnum.GLU_TESS_MESH, 5), 'GLU_INVALID_ENUM',
'did not throw GLU_INVALID_ENUM');
});
test('should throw on getting non-existent property', function() {
var tess = createTessellator(libtess);
assert.throw(tess.gluGetTessProperty.bind(tess,
libtess.gluEnum.GLU_TESS_END), 'GLU_INVALID_ENUM',
'did not throw GLU_INVALID_ENUM');
});
test('should throw on setting non-existent callback', function() {
var tess = createTessellator(libtess);
assert.throw(tess.gluTessCallback.bind(tess,
libtess.gluEnum.GLU_TESS_TOLERANCE), 'GLU_INVALID_ENUM',
'did not throw GLU_INVALID_ENUM');
});
});

suite('GLU_INVALID_VALUE', function() {
test('should throw on out-of-range tolerance', function() {
var tess = createTessellator(libtess);
assert.throw(tess.gluTessProperty.bind(tess,
libtess.gluEnum.GLU_TESS_TOLERANCE, 1.1), 'GLU_INVALID_VALUE',
'did not throw GLU_INVALID_VALUE');
assert.throw(tess.gluTessProperty.bind(tess,
libtess.gluEnum.GLU_TESS_TOLERANCE, -0.1), 'GLU_INVALID_VALUE',
'did not throw GLU_INVALID_VALUE');
});
test('should throw on invalid winding room', function() {
var tess = createTessellator(libtess);
assert.throw(tess.gluTessProperty.bind(tess,
libtess.gluEnum.GLU_TESS_WINDING_RULE,
libtess.gluEnum.GLU_TESS_VERTEX_DATA), 'GLU_INVALID_VALUE',
'did not throw GLU_INVALID_VALUE');
});
});
});

},{"./common.js":5,"./geometry/hourglass.js":7,"chai":undefined}],3:[function(require,module,exports){
Expand Down Expand Up @@ -647,6 +689,8 @@ exports.libtess = (function() {
* @private
*/
var ERROR_TYPES_ = {
100900: 'GLU_INVALID_ENUM',
100901: 'GLU_INVALID_VALUE',
100151: 'GLU_TESS_MISSING_BEGIN_POLYGON',
100153: 'GLU_TESS_MISSING_END_POLYGON',
100152: 'GLU_TESS_MISSING_BEGIN_CONTOUR',
Expand Down
2 changes: 2 additions & 0 deletions test/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ exports.libtess = (function() {
* @private
*/
var ERROR_TYPES_ = {
100900: 'GLU_INVALID_ENUM',
100901: 'GLU_INVALID_VALUE',
100151: 'GLU_TESS_MISSING_BEGIN_POLYGON',
100153: 'GLU_TESS_MISSING_END_POLYGON',
100152: 'GLU_TESS_MISSING_BEGIN_CONTOUR',
Expand Down
42 changes: 42 additions & 0 deletions test/errors.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -292,4 +292,46 @@ suite('Explicit Error States', function() {
assert.deepEqual(resultVerts, [], 'no output should be generated');
});
});

// not technically one of the main errors; possibly this should live in
// basics.test.js
suite('GLU_INVALID_ENUM', function() {
test('should throw on setting non-existent property', function() {
var tess = createTessellator(libtess);
assert.throw(tess.gluTessProperty.bind(tess,
libtess.gluEnum.GLU_TESS_MESH, 5), 'GLU_INVALID_ENUM',
'did not throw GLU_INVALID_ENUM');
});
test('should throw on getting non-existent property', function() {
var tess = createTessellator(libtess);
assert.throw(tess.gluGetTessProperty.bind(tess,
libtess.gluEnum.GLU_TESS_END), 'GLU_INVALID_ENUM',
'did not throw GLU_INVALID_ENUM');
});
test('should throw on setting non-existent callback', function() {
var tess = createTessellator(libtess);
assert.throw(tess.gluTessCallback.bind(tess,
libtess.gluEnum.GLU_TESS_TOLERANCE), 'GLU_INVALID_ENUM',
'did not throw GLU_INVALID_ENUM');
});
});

suite('GLU_INVALID_VALUE', function() {
test('should throw on out-of-range tolerance', function() {
var tess = createTessellator(libtess);
assert.throw(tess.gluTessProperty.bind(tess,
libtess.gluEnum.GLU_TESS_TOLERANCE, 1.1), 'GLU_INVALID_VALUE',
'did not throw GLU_INVALID_VALUE');
assert.throw(tess.gluTessProperty.bind(tess,
libtess.gluEnum.GLU_TESS_TOLERANCE, -0.1), 'GLU_INVALID_VALUE',
'did not throw GLU_INVALID_VALUE');
});
test('should throw on invalid winding room', function() {
var tess = createTessellator(libtess);
assert.throw(tess.gluTessProperty.bind(tess,
libtess.gluEnum.GLU_TESS_WINDING_RULE,
libtess.gluEnum.GLU_TESS_VERTEX_DATA), 'GLU_INVALID_VALUE',
'did not throw GLU_INVALID_VALUE');
});
});
});

0 comments on commit cc591f7

Please sign in to comment.