xyc
2024-05-17 6b24f642b01cf3cd1be0d5833273fa2867d389e1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/* eslint-env qunit */
import * as units from '../editor/units.js';
 
// log function
QUnit.log((details) => {
  if (window.console && window.console.log) {
    window.console.log(details.result + ' :: ' + details.message);
  }
});
 
function setUp () {
  units.init(
    /**
    * @implements {module:units.ElementContainer}
    */
    {
      getBaseUnit () { return 'cm'; },
      getHeight () { return 600; },
      getWidth () { return 800; },
      getRoundDigits () { return 4; },
      getElement (elementId) { return document.getElementById(elementId); }
    }
  );
}
 
QUnit.test('Test svgedit.units package', function (assert) {
  assert.expect(2);
  assert.ok(units);
  assert.equal(typeof units, typeof {});
});
 
QUnit.test('Test svgedit.units.shortFloat()', function (assert) {
  assert.expect(7);
 
  setUp();
 
  assert.ok(units.shortFloat);
  assert.equal(typeof units.shortFloat, typeof function () {});
 
  const {shortFloat} = units;
  assert.equal(shortFloat(0.00000001), 0);
  assert.equal(shortFloat(1), 1);
  assert.equal(shortFloat(3.45678), 3.4568);
  assert.equal(shortFloat(1.23443), 1.2344);
  assert.equal(shortFloat(1.23455), 1.2346);
});
 
QUnit.test('Test svgedit.units.isValidUnit()', function (assert) {
  assert.expect(18);
 
  setUp();
 
  assert.ok(units.isValidUnit);
  assert.equal(typeof units.isValidUnit, typeof function () {});
 
  const {isValidUnit} = units;
  assert.ok(isValidUnit('0'));
  assert.ok(isValidUnit('1'));
  assert.ok(isValidUnit('1.1'));
  assert.ok(isValidUnit('-1.1'));
  assert.ok(isValidUnit('.6mm'));
  assert.ok(isValidUnit('-.6cm'));
  assert.ok(isValidUnit('6000in'));
  assert.ok(isValidUnit('6px'));
  assert.ok(isValidUnit('6.3pc'));
  assert.ok(isValidUnit('-0.4em'));
  assert.ok(isValidUnit('-0.ex'));
  assert.ok(isValidUnit('40.123%'));
 
  assert.equal(isValidUnit('id', 'uniqueId', document.getElementById('uniqueId')), true);
  assert.equal(isValidUnit('id', 'newId', document.getElementById('uniqueId')), true);
  assert.equal(isValidUnit('id', 'uniqueId'), false);
  assert.equal(isValidUnit('id', 'uniqueId', document.getElementById('nonUniqueId')), false);
});
 
QUnit.test('Test svgedit.units.convertUnit()', function (assert) {
  assert.expect(4);
 
  setUp();
 
  assert.ok(units.convertUnit);
  assert.equal(typeof units.convertUnit, typeof function () {});
  // cm in default setup
  assert.equal(units.convertUnit(42), 1.1113);
  assert.equal(units.convertUnit(42, 'px'), 42);
});