UNPKG

4.4 kBPlain TextView Raw
1import {ClearColor, ClearDepth, ClearStencil, ColorMask, DepthMask, StencilMask, StencilFunc, StencilOp, StencilTest, DepthRange, DepthTest, DepthFunc, Blend, BlendFunc, BlendColor, ProgramValue, ActiveTextureUnit, Viewport, BindFramebuffer, BindRenderbuffer, BindTexture, BindVertexBuffer, BindElementBuffer, BindVertexArrayOES, PixelStoreUnpack, PixelStoreUnpackPremultiplyAlpha} from './value';
2import Context from './context';
3import Color from '../style-spec/util/color';
4import {deepEqual} from '../util/util';
5import gl from 'gl';
6
7const context = new Context(gl(10, 10));
8
9const valueTest = (Constructor: new (...args:any[]) => any, options) => {
10 test('#constructor', () => {
11 const v = new Constructor(context);
12 expect(v).toBeTruthy();
13 const currentV = v.get();
14 expect(typeof currentV).not.toBe('undefined');
15 });
16
17 test('#set', () => {
18 const v = new Constructor(context);
19 v.set(options.setValue);
20 const equality = (options.equality) || ((a, b) => deepEqual(a, b));
21 expect(equality(v.get(), options.setValue)).toBeTruthy();
22 });
23
24};
25
26describe('ClearColor', () => {
27 valueTest(ClearColor, {
28 setValue: new Color(1, 1, 0, 1)
29 });
30});
31
32describe('ClearDepth', () => {
33 valueTest(ClearDepth, {
34 setValue: 0.5
35 });
36});
37
38describe('ClearStencil', () => {
39 valueTest(ClearStencil, {
40 setValue: 0.5
41 });
42});
43
44describe('ColorMask', () => {
45 valueTest(ColorMask, {
46 setValue: [false, false, true, true]
47 });
48});
49
50describe('DepthMask', () => {
51 valueTest(DepthMask, {
52 setValue: false
53 });
54});
55
56describe('StencilMask', () => {
57 valueTest(StencilMask, {
58 setValue: [0x00, 4]
59 });
60});
61
62describe('StencilFunc', () => {
63 valueTest(StencilFunc, {
64 setValue: {
65 func: context.gl.LEQUAL,
66 ref: 1,
67 mask: 0xFF
68 }
69 });
70});
71
72describe('StencilOp', () => {
73 valueTest(StencilOp, {
74 setValue: [context.gl.KEEP, context.gl.REPLACE, context.gl.REPLACE]
75 });
76});
77
78describe('StencilTest', () => {
79 valueTest(StencilTest, {
80 setValue: true
81 });
82});
83
84describe('DepthRange', () => {
85 valueTest(DepthRange, {
86 setValue: [0, 0.1]
87 });
88});
89
90describe('DepthTest', () => {
91 valueTest(DepthTest, {
92 setValue: true
93 });
94});
95
96describe('DepthFunc', () => {
97 valueTest(DepthFunc, {
98 setValue: context.gl.EQUAL
99 });
100});
101
102describe('Blend', () => {
103 valueTest(Blend, {
104 setValue: false
105 });
106});
107
108describe('BlendFunc', () => {
109 valueTest(BlendFunc, {
110 setValue: [context.gl.SRC_ALPHA, context.gl.SRC_ALPHA]
111 });
112});
113
114describe('BlendColor', () => {
115 valueTest(BlendColor, {
116 setValue: Color.white
117 });
118});
119
120describe('Program', () => {
121 valueTest(ProgramValue, {
122 equality: (a, b) => a === b,
123 setValue: context.gl.createProgram()
124 });
125});
126
127describe('ActiveTextureUnit', () => {
128 valueTest(ActiveTextureUnit, {
129 setValue: context.gl.TEXTURE1
130 });
131});
132
133describe('Viewport', () => {
134 valueTest(Viewport, {
135 setValue: [0, 0, 1, 1]
136 });
137});
138
139describe('BindFramebuffer', () => {
140 valueTest(BindFramebuffer, {
141 equality: (a, b) => a === b,
142 setValue: context.gl.createFramebuffer()
143 });
144});
145
146describe('BindRenderbuffer', () => {
147 valueTest(BindRenderbuffer, {
148 equality: (a, b) => a === b,
149 setValue: context.gl.createRenderbuffer()
150 });
151});
152
153describe('BindTexture', () => {
154 valueTest(BindTexture, {
155 equality: (a, b) => a === b,
156 setValue: context.gl.createTexture()
157 });
158});
159
160describe('BindVertexBuffer', () => {
161 valueTest(BindVertexBuffer, {
162 equality: (a, b) => a === b,
163 setValue: context.gl.createBuffer()
164 });
165});
166
167describe('BindElementBuffer', () => {
168 valueTest(BindElementBuffer, {
169 equality: (a, b) => a === b,
170 setValue: context.gl.createBuffer()
171 });
172});
173
174describe('BindVertexArrayOES', () => {
175 valueTest(BindVertexArrayOES, {
176 equality: (a, b) => a === b,
177 setValue: context.extVertexArrayObject
178 });
179});
180
181describe('PixelStoreUnpack', () => {
182 valueTest(PixelStoreUnpack, {
183 setValue: 8
184 });
185});
186
187describe('PixelStoreUnpackPremultiplyAlpha', () => {
188 valueTest(PixelStoreUnpackPremultiplyAlpha, {
189 setValue: true
190 });
191});
192
\No newline at end of file