| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 suite('drag and drop', function() { | 5 suite('drag and drop', function() { |
| 6 var app; | 6 var app; |
| 7 var list; | 7 var list; |
| 8 var rootFolderNode; | 8 var rootFolderNode; |
| 9 var store; | 9 var store; |
| 10 var dndManager; | 10 var dndManager; |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 createItem('12'), | 84 createItem('12'), |
| 85 createItem('13'), | 85 createItem('13'), |
| 86 createFolder('14', []), | 86 createFolder('14', []), |
| 87 createFolder('15', []), | 87 createFolder('15', []), |
| 88 ]), | 88 ]), |
| 89 createFolder('2', [])), | 89 createFolder('2', [])), |
| 90 selectedFolder: '1', | 90 selectedFolder: '1', |
| 91 }); | 91 }); |
| 92 store.replaceSingleton(); | 92 store.replaceSingleton(); |
| 93 | 93 |
| 94 draggedIds = null; |
| 94 chrome.bookmarkManagerPrivate.startDrag = function(nodes, isTouch) { | 95 chrome.bookmarkManagerPrivate.startDrag = function(nodes, isTouch) { |
| 95 draggedIds = nodes; | 96 draggedIds = nodes; |
| 96 }; | 97 }; |
| 97 | 98 |
| 98 app = document.createElement('bookmarks-app'); | 99 app = document.createElement('bookmarks-app'); |
| 99 replaceBody(app); | 100 replaceBody(app); |
| 100 list = app.$$('bookmarks-list'); | 101 list = app.$$('bookmarks-list'); |
| 101 rootFolderNode = app.$$('bookmarks-folder-node'); | 102 rootFolderNode = app.$$('bookmarks-folder-node'); |
| 102 dndManager = app.dndManager_; | 103 dndManager = app.dndManager_; |
| 103 dndManager.disableTimeoutsForTesting(); | 104 dndManager.disableTimeoutsForTesting(); |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 483 dispatchDragEvent('dragstart', dragElement); | 484 dispatchDragEvent('dragstart', dragElement); |
| 484 assertDeepEquals(['14'], normalizeSet(store.data.selection.items)); | 485 assertDeepEquals(['14'], normalizeSet(store.data.selection.items)); |
| 485 dispatchDragEvent('dragend', dragElement); | 486 dispatchDragEvent('dragend', dragElement); |
| 486 | 487 |
| 487 // Dragging a folder node deselects any selected items in the bookmark list. | 488 // Dragging a folder node deselects any selected items in the bookmark list. |
| 488 dragElement = getFolderNode('15'); | 489 dragElement = getFolderNode('15'); |
| 489 dispatchDragEvent('dragstart', dragElement); | 490 dispatchDragEvent('dragstart', dragElement); |
| 490 assertDeepEquals([], normalizeSet(store.data.selection.items)); | 491 assertDeepEquals([], normalizeSet(store.data.selection.items)); |
| 491 dispatchDragEvent('dragend', dragElement); | 492 dispatchDragEvent('dragend', dragElement); |
| 492 }); | 493 }); |
| 494 |
| 495 test('cannot drag items when editing is disabled', function() { |
| 496 store.data.prefs.canEdit = false; |
| 497 store.notifyObservers(); |
| 498 |
| 499 var dragElement = getFolderNode('11'); |
| 500 dispatchDragEvent('dragstart', dragElement); |
| 501 assertEquals(null, draggedIds); |
| 502 }); |
| 503 |
| 504 test('cannot start dragging unmodifiable items', function() { |
| 505 store.data.nodes['2'].unmodifiable = 'managed'; |
| 506 store.notifyObservers(); |
| 507 |
| 508 var dragElement = getFolderNode('1'); |
| 509 dispatchDragEvent('dragstart', dragElement); |
| 510 assertEquals(null, draggedIds); |
| 511 |
| 512 dragElement = getFolderNode('2'); |
| 513 dispatchDragEvent('dragstart', dragElement); |
| 514 assertEquals(null, draggedIds); |
| 515 }); |
| 516 |
| 517 test('cannot drag onto folders with unmodifiable children', function() { |
| 518 store.data.nodes['2'].unmodifiable = 'managed'; |
| 519 store.notifyObservers(); |
| 520 |
| 521 var dragElement = getListItem('12'); |
| 522 dispatchDragEvent('dragstart', dragElement); |
| 523 |
| 524 // Can't drag onto the unmodifiable node. |
| 525 var dragTarget = getFolderNode('2'); |
| 526 dispatchDragEvent('dragover', dragTarget); |
| 527 assertEquals( |
| 528 DropPosition.NONE, dndManager.calculateValidDropPositions_(dragTarget)); |
| 529 }); |
| 493 }); | 530 }); |
| OLD | NEW |