mirror of
https://github.com/google/blockly.git
synced 2026-01-06 08:30:13 +01:00
Updates to the new pattern for testing private
This commit is contained in:
@@ -292,6 +292,8 @@ DropDownDiv.showPositionedByField = function(
|
||||
getScaledBboxOfField(field), field, opt_onHide, opt_secondaryYOffset);
|
||||
};
|
||||
|
||||
const internal = {};
|
||||
|
||||
/**
|
||||
* Get the scaled bounding box of a block.
|
||||
* @param {!BlockSvg} block The block.
|
||||
@@ -408,7 +410,7 @@ DropDownDiv.show = function(
|
||||
* @return {!DropDownDiv.BoundsInfo} An object containing size
|
||||
* information about the bounding element (bounding box and width/height).
|
||||
*/
|
||||
let getBoundsInfo = function() {
|
||||
internal.getBoundsInfo = function() {
|
||||
const boundPosition = style.getPageOffset(
|
||||
/** @type {!Element} */ (DropDownDiv.boundsElement_));
|
||||
const boundSize = style.getSize(
|
||||
@@ -436,9 +438,9 @@ let getBoundsInfo = function() {
|
||||
* @return {!DropDownDiv.PositionMetrics} Various final metrics,
|
||||
* including rendered positions for drop-down and arrow.
|
||||
*/
|
||||
const getPositionMetrics = function(
|
||||
internal.getPositionMetrics = function(
|
||||
primaryX, primaryY, secondaryX, secondaryY) {
|
||||
const boundsInfo = getBoundsInfo();
|
||||
const boundsInfo = internal.getBoundsInfo();
|
||||
const divSize = style.getSize(
|
||||
/** @type {!Element} */ (DropDownDiv.DIV_));
|
||||
|
||||
@@ -689,7 +691,7 @@ DropDownDiv.hideWithoutAnimation = function() {
|
||||
*/
|
||||
const positionInternal = function(primaryX, primaryY, secondaryX, secondaryY) {
|
||||
const metrics =
|
||||
getPositionMetrics(primaryX, primaryY, secondaryX, secondaryY);
|
||||
internal.getPositionMetrics(primaryX, primaryY, secondaryX, secondaryY);
|
||||
|
||||
// Update arrow CSS.
|
||||
if (metrics.arrowVisible) {
|
||||
@@ -756,12 +758,4 @@ DropDownDiv.repositionForWindowResize = function() {
|
||||
};
|
||||
exports = DropDownDiv;
|
||||
|
||||
exports.testOnly_setGetBoundsInfo = function(getBoundsInfoMock) {
|
||||
goog.setTestOnly();
|
||||
getBoundsInfo = getBoundsInfoMock;
|
||||
};
|
||||
|
||||
exports.testOnly_getPositionMetrics = function (...args) {
|
||||
goog.setTestOnly();
|
||||
return getPositionMetrics(...args);
|
||||
}
|
||||
exports.TEST_ONLY = internal;
|
||||
|
||||
@@ -341,8 +341,6 @@ function buildDeps(done) {
|
||||
closurePath,
|
||||
'core',
|
||||
'blocks',
|
||||
'generators',
|
||||
'tests/mocha'
|
||||
];
|
||||
const args = roots.map(root => `--root '${root}' `).join('');
|
||||
execSync(`closure-make-deps ${args} > tests/deps.js`, {stdio: 'inherit'});
|
||||
|
||||
107
tests/deps.js
107
tests/deps.js
@@ -211,112 +211,5 @@ goog.addDependency('../../core/workspace_dragger.js', ['Blockly.WorkspaceDragger
|
||||
goog.addDependency('../../core/workspace_svg.js', ['Blockly.WorkspaceSvg'], ['Blockly.BlockSvg', 'Blockly.ComponentManager', 'Blockly.ConnectionDB', 'Blockly.ContextMenu', 'Blockly.ContextMenuRegistry', 'Blockly.Events', 'Blockly.Events.BlockCreate', 'Blockly.Events.ThemeChange', 'Blockly.Events.ViewportChange', 'Blockly.Gesture', 'Blockly.Grid', 'Blockly.IASTNodeLocationSvg', 'Blockly.MarkerManager', 'Blockly.MetricsManager', 'Blockly.Msg', 'Blockly.Options', 'Blockly.ThemeManager', 'Blockly.Themes.Classic', 'Blockly.TouchGesture', 'Blockly.Workspace', 'Blockly.WorkspaceAudio', 'Blockly.WorkspaceDragSurfaceSvg', 'Blockly.Xml', 'Blockly.blockRendering', 'Blockly.browserEvents', 'Blockly.internalConstants', 'Blockly.registry', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.Metrics', 'Blockly.utils.Rect', 'Blockly.utils.Size', 'Blockly.utils.Svg', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.toolbox'], {'lang': 'es5'});
|
||||
goog.addDependency('../../core/xml.js', ['Blockly.Xml'], ['Blockly.Events', 'Blockly.inputTypes', 'Blockly.utils', 'Blockly.utils.Size', 'Blockly.utils.dom', 'Blockly.utils.xml']);
|
||||
goog.addDependency('../../core/zoom_controls.js', ['Blockly.ZoomControls'], ['Blockly.ComponentManager', 'Blockly.Css', 'Blockly.Events', 'Blockly.Events.Click', 'Blockly.IPositionable', 'Blockly.Touch', 'Blockly.browserEvents', 'Blockly.internalConstants', 'Blockly.uiPosition', 'Blockly.utils', 'Blockly.utils.Rect', 'Blockly.utils.Svg', 'Blockly.utils.dom'], {'lang': 'es5'});
|
||||
goog.addDependency('../../generators/dart.js', ['Blockly.Dart'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.string']);
|
||||
goog.addDependency('../../generators/dart/colour.js', ['Blockly.Dart.colour'], ['Blockly.Dart']);
|
||||
goog.addDependency('../../generators/dart/lists.js', ['Blockly.Dart.lists'], ['Blockly.Dart']);
|
||||
goog.addDependency('../../generators/dart/logic.js', ['Blockly.Dart.logic'], ['Blockly.Dart']);
|
||||
goog.addDependency('../../generators/dart/loops.js', ['Blockly.Dart.loops'], ['Blockly.Dart']);
|
||||
goog.addDependency('../../generators/dart/math.js', ['Blockly.Dart.math'], ['Blockly.Dart']);
|
||||
goog.addDependency('../../generators/dart/procedures.js', ['Blockly.Dart.procedures'], ['Blockly.Dart']);
|
||||
goog.addDependency('../../generators/dart/text.js', ['Blockly.Dart.texts'], ['Blockly.Dart']);
|
||||
goog.addDependency('../../generators/dart/variables.js', ['Blockly.Dart.variables'], ['Blockly.Dart']);
|
||||
goog.addDependency('../../generators/dart/variables_dynamic.js', ['Blockly.Dart.variablesDynamic'], ['Blockly.Dart', 'Blockly.Dart.variables']);
|
||||
goog.addDependency('../../generators/javascript.js', ['Blockly.JavaScript'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.global', 'Blockly.utils.object', 'Blockly.utils.string']);
|
||||
goog.addDependency('../../generators/javascript/colour.js', ['Blockly.JavaScript.colour'], ['Blockly.JavaScript']);
|
||||
goog.addDependency('../../generators/javascript/lists.js', ['Blockly.JavaScript.lists'], ['Blockly.JavaScript']);
|
||||
goog.addDependency('../../generators/javascript/logic.js', ['Blockly.JavaScript.logic'], ['Blockly.JavaScript']);
|
||||
goog.addDependency('../../generators/javascript/loops.js', ['Blockly.JavaScript.loops'], ['Blockly.JavaScript']);
|
||||
goog.addDependency('../../generators/javascript/math.js', ['Blockly.JavaScript.math'], ['Blockly.JavaScript']);
|
||||
goog.addDependency('../../generators/javascript/procedures.js', ['Blockly.JavaScript.procedures'], ['Blockly.JavaScript']);
|
||||
goog.addDependency('../../generators/javascript/text.js', ['Blockly.JavaScript.texts'], ['Blockly.JavaScript']);
|
||||
goog.addDependency('../../generators/javascript/variables.js', ['Blockly.JavaScript.variables'], ['Blockly.JavaScript']);
|
||||
goog.addDependency('../../generators/javascript/variables_dynamic.js', ['Blockly.JavaScript.variablesDynamic'], ['Blockly.JavaScript', 'Blockly.JavaScript.variables']);
|
||||
goog.addDependency('../../generators/lua.js', ['Blockly.Lua'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.object', 'Blockly.utils.string']);
|
||||
goog.addDependency('../../generators/lua/colour.js', ['Blockly.Lua.colour'], ['Blockly.Lua']);
|
||||
goog.addDependency('../../generators/lua/lists.js', ['Blockly.Lua.lists'], ['Blockly.Lua']);
|
||||
goog.addDependency('../../generators/lua/logic.js', ['Blockly.Lua.logic'], ['Blockly.Lua']);
|
||||
goog.addDependency('../../generators/lua/loops.js', ['Blockly.Lua.loops'], ['Blockly.Lua']);
|
||||
goog.addDependency('../../generators/lua/math.js', ['Blockly.Lua.math'], ['Blockly.Lua']);
|
||||
goog.addDependency('../../generators/lua/procedures.js', ['Blockly.Lua.procedures'], ['Blockly.Lua']);
|
||||
goog.addDependency('../../generators/lua/text.js', ['Blockly.Lua.texts'], ['Blockly.Lua'], {'lang': 'es5'});
|
||||
goog.addDependency('../../generators/lua/variables.js', ['Blockly.Lua.variables'], ['Blockly.Lua']);
|
||||
goog.addDependency('../../generators/lua/variables_dynamic.js', ['Blockly.Lua.variablesDynamic'], ['Blockly.Lua', 'Blockly.Lua.variables']);
|
||||
goog.addDependency('../../generators/php.js', ['Blockly.PHP'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.object', 'Blockly.utils.string']);
|
||||
goog.addDependency('../../generators/php/colour.js', ['Blockly.PHP.colour'], ['Blockly.PHP']);
|
||||
goog.addDependency('../../generators/php/lists.js', ['Blockly.PHP.lists'], ['Blockly.PHP']);
|
||||
goog.addDependency('../../generators/php/logic.js', ['Blockly.PHP.logic'], ['Blockly.PHP']);
|
||||
goog.addDependency('../../generators/php/loops.js', ['Blockly.PHP.loops'], ['Blockly.PHP']);
|
||||
goog.addDependency('../../generators/php/math.js', ['Blockly.PHP.math'], ['Blockly.PHP']);
|
||||
goog.addDependency('../../generators/php/procedures.js', ['Blockly.PHP.procedures'], ['Blockly.PHP']);
|
||||
goog.addDependency('../../generators/php/text.js', ['Blockly.PHP.texts'], ['Blockly.PHP']);
|
||||
goog.addDependency('../../generators/php/variables.js', ['Blockly.PHP.variables'], ['Blockly.PHP']);
|
||||
goog.addDependency('../../generators/php/variables_dynamic.js', ['Blockly.PHP.variablesDynamic'], ['Blockly.PHP', 'Blockly.PHP.variables']);
|
||||
goog.addDependency('../../generators/python.js', ['Blockly.Python'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.string']);
|
||||
goog.addDependency('../../generators/python/colour.js', ['Blockly.Python.colour'], ['Blockly.Python']);
|
||||
goog.addDependency('../../generators/python/lists.js', ['Blockly.Python.lists'], ['Blockly.Python']);
|
||||
goog.addDependency('../../generators/python/logic.js', ['Blockly.Python.logic'], ['Blockly.Python']);
|
||||
goog.addDependency('../../generators/python/loops.js', ['Blockly.Python.loops'], ['Blockly.Python']);
|
||||
goog.addDependency('../../generators/python/math.js', ['Blockly.Python.math'], ['Blockly.Python']);
|
||||
goog.addDependency('../../generators/python/procedures.js', ['Blockly.Python.procedures'], ['Blockly.Python']);
|
||||
goog.addDependency('../../generators/python/text.js', ['Blockly.Python.texts'], ['Blockly.Python']);
|
||||
goog.addDependency('../../generators/python/variables.js', ['Blockly.Python.variables'], ['Blockly.Python']);
|
||||
goog.addDependency('../../generators/python/variables_dynamic.js', ['Blockly.Python.variablesDynamic'], ['Blockly.Python', 'Blockly.Python.variables']);
|
||||
goog.addDependency('../../tests/mocha/.mocharc.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/astnode_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/block_json_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/block_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/comment_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/connection_checker_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/connection_db_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/connection_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/contextmenu_items_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/cursor_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/dropdowndiv_test.js', ['DropDownDivTests'], ['Blockly.DropDownDiv'], {'lang': 'es6', 'module': 'goog'});
|
||||
goog.addDependency('../../tests/mocha/event_test.js', [], ['Blockly.WorkspaceComment'], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/extensions_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/field_angle_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/field_checkbox_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/field_colour_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/field_dropdown_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/field_image_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/field_label_serializable_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/field_label_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/field_multilineinput_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/field_number_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/field_registry_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/field_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/field_textinput_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/field_variable_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/flyout_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/generator_test.js', [], ['Blockly.Dart', 'Blockly.JavaScript', 'Blockly.Lua', 'Blockly.PHP', 'Blockly.Python']);
|
||||
goog.addDependency('../../tests/mocha/gesture_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/input_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/insertion_marker_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/json_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/keydown_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/logic_ternary_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/metrics_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/names_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/procedures_test.js', [], ['Blockly.Blocks.procedures', 'Blockly.Msg'], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/procedures_test_helpers.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/registry_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/run_mocha_tests_in_browser.js', [], [], {'lang': 'es8'});
|
||||
goog.addDependency('../../tests/mocha/shortcut_registry_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/test_helpers.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/theme_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/toolbox_helper.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/toolbox_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/tooltip_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/trashcan_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/utils_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/variable_map_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/variable_model_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/variables_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/widget_div_test.js', [], []);
|
||||
goog.addDependency('../../tests/mocha/workspace_comment_test.js', [], ['Blockly.WorkspaceComment']);
|
||||
goog.addDependency('../../tests/mocha/workspace_svg_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/workspace_test.js', [], [], {'lang': 'es6'});
|
||||
goog.addDependency('../../tests/mocha/xml_test.js', [], [], {'lang': 'es5'});
|
||||
goog.addDependency('../../tests/mocha/zoom_controls_test.js', [], []);
|
||||
goog.addDependency('base.js', [], []);
|
||||
|
||||
|
||||
@@ -4,24 +4,21 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
goog.module('DropDownDivTests');
|
||||
goog.setTestOnly();
|
||||
|
||||
const DropDownDiv = goog.require('Blockly.DropDownDiv');
|
||||
suite('DropDownDiv', function() {
|
||||
suite('Positioning', function() {
|
||||
setup(function() {
|
||||
sharedTestSetup.call(this);
|
||||
DropDownDiv.testOnly_setGetBoundsInfo(function() {
|
||||
return {
|
||||
left: 0,
|
||||
right: 100,
|
||||
top: 0,
|
||||
bottom: 100,
|
||||
width: 100,
|
||||
height: 100
|
||||
};
|
||||
});
|
||||
this.boundsStub = sinon.stub(Blockly.DropDownDiv.TEST_ONLY, 'getBoundsInfo')
|
||||
.returns({
|
||||
left: 0,
|
||||
right: 100,
|
||||
top: 0,
|
||||
bottom: 100,
|
||||
width: 100,
|
||||
height: 100
|
||||
});
|
||||
this.sizeStub = sinon.stub(Blockly.utils.style, 'getSize')
|
||||
.returns({
|
||||
width: 60,
|
||||
@@ -36,7 +33,7 @@ suite('DropDownDiv', function() {
|
||||
sharedTestTeardown.call(this);
|
||||
});
|
||||
test('Below, in Bounds', function() {
|
||||
var metrics = DropDownDiv.testOnly_getPositionMetrics(50, 0, 50, -10);
|
||||
var metrics = Blockly.DropDownDiv.TEST_ONLY.getPositionMetrics(50, 0, 50, -10);
|
||||
// "Above" in value actually means below in render.
|
||||
chai.assert.isAtLeast(metrics.initialY, 0);
|
||||
chai.assert.isAbove(metrics.finalY, 0);
|
||||
@@ -44,7 +41,7 @@ suite('DropDownDiv', function() {
|
||||
chai.assert.isTrue(metrics.arrowAtTop);
|
||||
});
|
||||
test('Above, in Bounds', function() {
|
||||
var metrics = DropDownDiv.testOnly_getPositionMetrics(50, 100, 50, 90);
|
||||
var metrics = Blockly.DropDownDiv.TEST_ONLY.getPositionMetrics(50, 100, 50, 90);
|
||||
// "Below" in value actually means above in render.
|
||||
chai.assert.isAtMost(metrics.initialY, 100);
|
||||
chai.assert.isBelow(metrics.finalY, 100);
|
||||
@@ -52,7 +49,7 @@ suite('DropDownDiv', function() {
|
||||
chai.assert.isFalse(metrics.arrowAtTop);
|
||||
});
|
||||
test('Below, out of Bounds', function() {
|
||||
var metrics = DropDownDiv.testOnly_getPositionMetrics(50, 60, 50, 50);
|
||||
var metrics = Blockly.DropDownDiv.TEST_ONLY.getPositionMetrics(50, 60, 50, 50);
|
||||
// "Above" in value actually means below in render.
|
||||
chai.assert.isAtLeast(metrics.initialY, 60);
|
||||
chai.assert.isAbove(metrics.finalY, 60);
|
||||
@@ -60,7 +57,7 @@ suite('DropDownDiv', function() {
|
||||
chai.assert.isTrue(metrics.arrowAtTop);
|
||||
});
|
||||
test('Above, in Bounds', function() {
|
||||
var metrics = DropDownDiv.testOnly_getPositionMetrics(50, 100, 50, 90);
|
||||
var metrics = Blockly.DropDownDiv.TEST_ONLY.getPositionMetrics(50, 100, 50, 90);
|
||||
// "Below" in value actually means above in render.
|
||||
chai.assert.isAtMost(metrics.initialY, 100);
|
||||
chai.assert.isBelow(metrics.finalY, 100);
|
||||
@@ -69,7 +66,7 @@ suite('DropDownDiv', function() {
|
||||
});
|
||||
test('No Solution, Render At Top', function() {
|
||||
this.clientHeightStub.get(function() { return 100; });
|
||||
var metrics = DropDownDiv.testOnly_getPositionMetrics(50, 60, 50, 50);
|
||||
var metrics = Blockly.DropDownDiv.TEST_ONLY.getPositionMetrics(50, 60, 50, 50);
|
||||
// "Above" in value actually means below in render.
|
||||
chai.assert.equal(metrics.initialY, 0);
|
||||
chai.assert.equal(metrics.finalY, 0);
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
<script src="connection_test.js"></script>
|
||||
<script src="contextmenu_items_test.js"></script>
|
||||
<script src="cursor_test.js"></script>
|
||||
<script>goog.require('DropDownDivTests');</script>
|
||||
<script src="dropdowndiv_test.js"></script>
|
||||
<script src="event_test.js"></script>
|
||||
<script src="extensions_test.js"></script>
|
||||
<script src="field_test.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user