forked from cytoscape/cytoscape.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcore-export.js
119 lines (101 loc) · 3.63 KB
/
core-export.js
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
var expect = require('chai').expect;
var cytoscape = require('../src/test.js', cytoscape);
describe('Core export', function(){
var cy;
// test setup
beforeEach(function(done){
cytoscape({
styleEnabled: true,
elements: {
nodes: [
{ data: { id: "n1", foo: "bar" }, classes: "odd one" },
]
},
ready: function(){
cy = this;
done();
}
});
});
afterEach(function(){
cy.destroy();
});
it('has all properties defined', function(){
var json = cy.json();
expect( json ).to.have.property('elements');
expect( json ).to.have.property('renderer');
expect( json ).to.have.property('minZoom').that.equals( cy.minZoom() );
expect( json ).to.have.property('maxZoom').that.equals( cy.maxZoom() );
expect( json ).to.have.property('zoomingEnabled').that.equals( cy.zoomingEnabled() );
expect( json ).to.have.property('userZoomingEnabled').that.equals( cy.userZoomingEnabled() );
expect( json ).to.have.property('panningEnabled').that.equals( cy.panningEnabled() );
expect( json ).to.have.property('userPanningEnabled').that.equals( cy.userPanningEnabled() );
expect( json ).to.have.property('boxSelectionEnabled').that.equals( cy.boxSelectionEnabled() );
expect( json ).to.have.property('zoom').that.equals( cy.zoom() );
expect( json ).to.have.property('pan').that.deep.equals( cy.pan() );
expect( json ).to.have.property('style');
// these are optional so not important to check
// expect( json ).to.have.property('hideEdgesOnViewport');
// expect( json ).to.have.property('hideLabelsOnViewport');
// expect( json ).to.have.property('textureOnViewport');
// expect( json ).to.have.property('wheelSensitivity');
// expect( json ).to.have.property('motionBlur');
});
var itExportsSelector = function( sel ){
it('exports `' + sel + '` selector in style', function(){
cy.style([
{
selector: sel,
style: {}
},
]);
expect( cy.json().style[0].selector ).to.equal( sel );
});
};
itExportsSelector('#foo');
itExportsSelector('.foo');
itExportsSelector('[foo]');
itExportsSelector('[^foo]');
itExportsSelector('[?foo]');
itExportsSelector('[!foo]');
itExportsSelector('[foo = 1]');
itExportsSelector('[foo = 1.23]');
itExportsSelector('[foo != 1]');
itExportsSelector('[foo > 1]');
itExportsSelector('[foo >= 1]');
itExportsSelector('[foo < 1]');
itExportsSelector('[foo <= 1]');
itExportsSelector('[foo = "bar"]');
itExportsSelector('[foo != "bar"]');
itExportsSelector('[foo *= "bar"]');
itExportsSelector('[foo ^= "bar"]');
itExportsSelector('[foo $= "bar"]');
itExportsSelector('[foo @= "bar"]');
itExportsSelector('[foo @!= "bar"]');
itExportsSelector('[foo @*= "bar"]');
itExportsSelector('[foo @^= "bar"]');
itExportsSelector('[foo @$= "bar"]');
itExportsSelector('[[degree > 2]]');
itExportsSelector('[[degree < 2]]');
itExportsSelector('[[degree = 2]]');
itExportsSelector('[[degree != 2]]');
itExportsSelector('node > node');
itExportsSelector('node node');
itExportsSelector('$node > node');
itExportsSelector('node > $node');
itExportsSelector('node > node');
itExportsSelector(':selected');
itExportsSelector('$node:selected > node[?foo][bar > 2][baz *= "bat"][[degree > 1]]:locked');
it('png export fails on headless instance', function(){
var exportImage = function(){
cy.png();
};
expect(exportImage).to.throw;
});
it('jpg export fails on headless instance', function(){
var exportImage = function(){
cy.jpg();
};
expect(exportImage).to.throw;
});
});