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