var template, expect, examples; if (typeof require !== 'undefined') { template = require('../lib/url-template.js'); expect = require("expect.js"); examples = require('../uritemplate-test/spec-examples-by-section.json'); } else { template = window.urltemplate; expect = window.expect; examples = window.examples; } function createTestContext(c) { return function (t, r) { if (typeof r === 'string') { expect(template.parse(t).expand(c)).to.eql(r); } else { expect(r.indexOf(template.parse(t).expand(c)) >= 0).to.be.ok(); } }; } describe('spec-examples', function () { Object.keys(examples).forEach(function (section) { var assert = createTestContext(examples[section].variables); examples[section].testcases.forEach(function (testcase) { it(section + ' ' + testcase[0], function () { assert(testcase[0], testcase[1]); }); }); }); });