Skip to content

Commit

Permalink
Tests for embedding strategies
Browse files Browse the repository at this point in the history
  • Loading branch information
justinmc committed Jan 17, 2023
1 parent 4fd56bd commit acbc3be
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ abstract class EmbeddingStrategy with _ContextMenu {

mixin _ContextMenu {
/// False when the context menu has been disabled, otherwise true.
bool _contextMenuEnabled = true;
@visibleForTesting
bool contextMenuEnabled = true;

/// Listener for contextmenu events that prevents the browser's context menu
/// from being shown.
Expand Down Expand Up @@ -88,12 +89,12 @@ mixin _ContextMenu {
/// [DomElement].
@protected
void disableContextMenuOn(DomElement element) {
if (!_contextMenuEnabled) {
if (!contextMenuEnabled) {
return;
}

element.addEventListener('contextmenu', _disablingContextMenuListener);
_contextMenuEnabled = false;
contextMenuEnabled = false;
}

/// Enables the browser's context menu for this part of the DOM.
Expand All @@ -116,11 +117,11 @@ mixin _ContextMenu {
/// [DomElement].
@protected
void enableContextMenuOn(DomElement element) {
if (_contextMenuEnabled) {
if (contextMenuEnabled) {
return;
}

element.removeEventListener('contextmenu', _disablingContextMenuListener);
_contextMenuEnabled = true;
contextMenuEnabled = true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -121,4 +121,33 @@ void doTests() {
reason: 'Should be injected `nextTo` the passed element.');
});
});

group('context menu', () {
setUp(() {
target = createDomElement('this-is-the-target');
domDocument.body!.append(target);
strategy = CustomElementEmbeddingStrategy(target);
strategy.initialize();
});

tearDown(() {
target.remove();
});

test('disableContextMenu and enableContextMenu can toggle the context menu', () {
expect(strategy.contextMenuEnabled, isTrue);

strategy.disableContextMenu();
expect(strategy.contextMenuEnabled, isFalse);

strategy.disableContextMenu();
expect(strategy.contextMenuEnabled, isFalse);

strategy.enableContextMenu();
expect(strategy.contextMenuEnabled, isTrue);

strategy.enableContextMenu();
expect(strategy.contextMenuEnabled, isTrue);
});
});
}
Original file line number Diff line number Diff line change
Expand Up @@ -129,4 +129,24 @@ void doTests() {
reason: 'Should be injected `nextTo` the passed element.');
});
});

group('context menu', () {
test('disableContextMenu and enableContextMenu can toggle the context menu', () {
final FullPageEmbeddingStrategy strategy = FullPageEmbeddingStrategy();

expect(strategy.contextMenuEnabled, isTrue);

strategy.disableContextMenu();
expect(strategy.contextMenuEnabled, isFalse);

strategy.disableContextMenu();
expect(strategy.contextMenuEnabled, isFalse);

strategy.enableContextMenu();
expect(strategy.contextMenuEnabled, isTrue);

strategy.enableContextMenu();
expect(strategy.contextMenuEnabled, isTrue);
});
});
}

0 comments on commit acbc3be

Please sign in to comment.