|
1 | 1 | var Plotly = require('@lib/index');
|
2 | 2 | var Plots = Plotly.Plots;
|
| 3 | +var Lib = require('@src/lib'); |
3 | 4 | var createGraphDiv = require('../assets/create_graph_div');
|
4 | 5 | var destroyGraphDiv = require('../assets/destroy_graph_div');
|
| 6 | +var click = require('../assets/click'); |
5 | 7 | var mouseEvent = require('../assets/mouse_event');
|
6 | 8 |
|
7 | 9 | describe('config argument', function() {
|
@@ -269,4 +271,119 @@ describe('config argument', function() {
|
269 | 271 | });
|
270 | 272 |
|
271 | 273 | });
|
| 274 | + |
| 275 | + describe('axis drag handles attribute', function() { |
| 276 | + var mock = require('@mocks/14.json'); |
| 277 | + |
| 278 | + var gd; |
| 279 | + var mockCopy; |
| 280 | + |
| 281 | + beforeEach(function(done) { |
| 282 | + gd = createGraphDiv(); |
| 283 | + mockCopy = Lib.extendDeep({}, mock); |
| 284 | + done(); |
| 285 | + }); |
| 286 | + |
| 287 | + afterEach(destroyGraphDiv); |
| 288 | + |
| 289 | + it('should have drag rectangles cursors by default', function() { |
| 290 | + Plotly.plot(gd, mockCopy.data, {}); |
| 291 | + |
| 292 | + var nwdrag = document.getElementsByClassName('drag nwdrag'); |
| 293 | + expect(nwdrag.length).toBe(1); |
| 294 | + var nedrag = document.getElementsByClassName('drag nedrag'); |
| 295 | + expect(nedrag.length).toBe(1); |
| 296 | + var swdrag = document.getElementsByClassName('drag swdrag'); |
| 297 | + expect(swdrag.length).toBe(1); |
| 298 | + var sedrag = document.getElementsByClassName('drag sedrag'); |
| 299 | + expect(sedrag.length).toBe(1); |
| 300 | + var ewdrag = document.getElementsByClassName('drag ewdrag'); |
| 301 | + expect(ewdrag.length).toBe(1); |
| 302 | + var wdrag = document.getElementsByClassName('drag wdrag'); |
| 303 | + expect(wdrag.length).toBe(1); |
| 304 | + var edrag = document.getElementsByClassName('drag edrag'); |
| 305 | + expect(edrag.length).toBe(1); |
| 306 | + var nsdrag = document.getElementsByClassName('drag nsdrag'); |
| 307 | + expect(nsdrag.length).toBe(1); |
| 308 | + var sdrag = document.getElementsByClassName('drag sdrag'); |
| 309 | + expect(sdrag.length).toBe(1); |
| 310 | + var ndrag = document.getElementsByClassName('drag ndrag'); |
| 311 | + expect(ndrag.length).toBe(1); |
| 312 | + |
| 313 | + }); |
| 314 | + |
| 315 | + it('should not have drag rectangles when disabled', function() { |
| 316 | + Plotly.plot(gd, mockCopy.data, {}, { showAxisDragHandles: false }); |
| 317 | + |
| 318 | + var nwdrag = document.getElementsByClassName('drag nwdrag'); |
| 319 | + expect(nwdrag.length).toBe(0); |
| 320 | + var nedrag = document.getElementsByClassName('drag nedrag'); |
| 321 | + expect(nedrag.length).toBe(0); |
| 322 | + var swdrag = document.getElementsByClassName('drag swdrag'); |
| 323 | + expect(swdrag.length).toBe(0); |
| 324 | + var sedrag = document.getElementsByClassName('drag sedrag'); |
| 325 | + expect(sedrag.length).toBe(0); |
| 326 | + var ewdrag = document.getElementsByClassName('drag ewdrag'); |
| 327 | + expect(ewdrag.length).toBe(0); |
| 328 | + var wdrag = document.getElementsByClassName('drag wdrag'); |
| 329 | + expect(wdrag.length).toBe(0); |
| 330 | + var edrag = document.getElementsByClassName('drag edrag'); |
| 331 | + expect(edrag.length).toBe(0); |
| 332 | + var nsdrag = document.getElementsByClassName('drag nsdrag'); |
| 333 | + expect(nsdrag.length).toBe(0); |
| 334 | + var sdrag = document.getElementsByClassName('drag sdrag'); |
| 335 | + expect(sdrag.length).toBe(0); |
| 336 | + var ndrag = document.getElementsByClassName('drag ndrag'); |
| 337 | + expect(ndrag.length).toBe(0); |
| 338 | + }); |
| 339 | + |
| 340 | + }); |
| 341 | + |
| 342 | + describe('axis range entry attribute', function() { |
| 343 | + var mock = require('@mocks/14.json'); |
| 344 | + |
| 345 | + var gd; |
| 346 | + var mockCopy; |
| 347 | + |
| 348 | + beforeEach(function(done) { |
| 349 | + gd = createGraphDiv(); |
| 350 | + mockCopy = Lib.extendDeep({}, mock); |
| 351 | + done(); |
| 352 | + }); |
| 353 | + |
| 354 | + afterEach(destroyGraphDiv); |
| 355 | + |
| 356 | + it('show allow axis range entry by default', function() { |
| 357 | + Plotly.plot(gd, mockCopy.data, {}); |
| 358 | + |
| 359 | + var corner = document.getElementsByClassName('edrag')[0]; |
| 360 | + |
| 361 | + var cornerBox = corner.getBoundingClientRect(), |
| 362 | + cornerX = cornerBox.left + cornerBox.width / 2, |
| 363 | + cornerY = cornerBox.top + cornerBox.height / 2; |
| 364 | + |
| 365 | + click(cornerX, cornerY); |
| 366 | + |
| 367 | + var editBox = document.getElementsByClassName('plugin-editable editable')[0]; |
| 368 | + expect(editBox).toBeDefined(); |
| 369 | + expect(editBox.getAttribute('contenteditable')).toBe('true'); |
| 370 | + }); |
| 371 | + |
| 372 | + it('show not allow axis range entry when', function() { |
| 373 | + Plotly.plot(gd, mockCopy.data, {}, { showAxisRangeEntryBoxes: false }); |
| 374 | + |
| 375 | + var corner = document.getElementsByClassName('edrag')[0]; |
| 376 | + |
| 377 | + var cornerBox = corner.getBoundingClientRect(), |
| 378 | + cornerX = cornerBox.left + cornerBox.width / 2, |
| 379 | + cornerY = cornerBox.top + cornerBox.height / 2; |
| 380 | + |
| 381 | + click(cornerX, cornerY); |
| 382 | + |
| 383 | + var editBox = document.getElementsByClassName('plugin-editable editable')[0]; |
| 384 | + expect(editBox).toBeUndefined(); |
| 385 | + }); |
| 386 | + |
| 387 | + |
| 388 | + }); |
272 | 389 | });
|
0 commit comments