mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-05 16:35:33 +00:00
53 lines
No EOL
1.8 KiB
JavaScript
53 lines
No EOL
1.8 KiB
JavaScript
var assert = chai.assert;
|
|
|
|
describe('Version Logic', function() {
|
|
this.timeout(kmwconfig.timeouts.standard);
|
|
|
|
before(function(done) {
|
|
this.timeout(kmwconfig.timeouts.scriptLoad);
|
|
setupKMW(null, done, kmwconfig.timeouts.scriptLoad);
|
|
});
|
|
|
|
after(function() {
|
|
teardownKMW();
|
|
});
|
|
|
|
it('Should provide a default, fallback value when nothing is specified', function() {
|
|
var fallback = new com.keyman.utils.Version(undefined);
|
|
assert.isTrue(fallback.equals(com.keyman.utils.Version.DEVELOPER_VERSION_FALLBACK));
|
|
});
|
|
|
|
it('Should properly process a simple major.minor version string.', function() {
|
|
var version = new com.keyman.utils.Version("1.2");
|
|
assert.equal(version.major, 1);
|
|
assert.equal(version.minor, 2);
|
|
});
|
|
|
|
it('Should handle long/deep version specifications.', function() {
|
|
var version = new com.keyman.utils.Version("1.2.3.4.5.6");
|
|
assert.equal(version.components.length, 6);
|
|
assert.equal(version.major, 1);
|
|
assert.equal(version.minor, 2);
|
|
});
|
|
|
|
it('Should properly compare two versions.', function() {
|
|
var v9_0_1 = new com.keyman.utils.Version("9.0.1");
|
|
var v9_1_0 = new com.keyman.utils.Version("9.1.0");
|
|
var v10_0 = new com.keyman.utils.Version("10.0");
|
|
var v10_0_0 = new com.keyman.utils.Version("10.0.0");
|
|
|
|
// "Precede" checks
|
|
assert.equal(v9_0_1.compareTo(v9_1_0), -1);
|
|
assert.equal(v9_1_0.compareTo(v10_0_0), -1);
|
|
assert.equal(v9_0_1.compareTo(v10_0_0), -1);
|
|
|
|
// Equality checks
|
|
assert.equal(v9_0_1.compareTo(v9_0_1), 0);
|
|
// Tests equal versions where one omits the build number.
|
|
assert.equal( v10_0.compareTo(v10_0_0), 0);
|
|
|
|
// Ensures the first "precede" check's return is flipped when the order's flipped.
|
|
assert.equal(v9_1_0.compareTo(v9_0_1), 1);
|
|
});
|
|
|
|
}); |