本文整理匯總了TypeScript中@ephox/agar.NamedChain類的典型用法代碼示例。如果您正苦於以下問題:TypeScript NamedChain類的具體用法?TypeScript NamedChain怎麽用?TypeScript NamedChain使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了NamedChain類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: sAssertUrlStructure
const testChangingUrlValueWith = (sChooseItem: Step<any, any>) => Log.stepsAsStep('TBA', 'Link: Choosing something in the urlinput changes text and value', [
tinyApis.sSetContent('<h1>Header One</h1><h2 id="existing-id">Header2</h2>'),
TestLinkUi.sOpenLinkDialog,
Keyboard.sKeydown(doc, Keys.down(), { }),
UiFinder.sWaitForVisible('Waiting for dropdown', TinyDom.fromDom(document.body), '.tox-menu'),
sChooseItem,
sAssertUrlStructure((s, str, _arr) => {
return s.element('input', {
value: str.startsWith('#h_')
});
}),
sAssertInputValue('Header One', 'Text to display'),
TestLinkUi.sAssertContentPresence(tinyApis, {
'h1[id]': 0,
'h2[id]': 1
}),
TestLinkUi.sClickSave,
TestLinkUi.sAssertContentPresence(tinyApis, {
'h1[id]': 1
}),
// Check that the h1's id value is referred to by a link containing dog
Chain.asStep(TinyDom.fromDom(editor.getBody()), [
NamedChain.asChain([
NamedChain.direct(NamedChain.inputName(), UiFinder.cFindIn('h1'), 'h1'),
NamedChain.direct('h1', Chain.mapper((h1) => Attr.get(h1, 'id')), 'h1-id'),
NamedChain.bundle((obj) => {
return UiFinder.findIn(obj[NamedChain.inputName()], `a[href="#${obj['h1-id']}"]:contains("Header One")`);
})
])
])
]);
示例2:
const cSubmitDialog = () => Chain.control(
NamedChain.asChain([
NamedChain.writeValue('body', Body.body()),
NamedChain.read('body', Mouse.cClickOn('.tox-button:contains("Save")')),
NamedChain.outputInput
]),
Guard.addLogging('Submit dialog')
);
示例3: cleanHtml
const cAssertCleanHtml = (label: string, expected: string) => Chain.control(
NamedChain.asChain([
NamedChain.direct(NamedChain.inputName(), Chain.identity, 'editor'),
NamedChain.direct('editor', Chain.mapper((editor: Editor) => cleanHtml(editor.getContent())), 'content'),
NamedChain.direct('content', Assertions.cAssertHtml(label, expected), 'result'),
NamedChain.outputInput
]),
Guard.addLogging('Assert clean html')
);
示例4: cInsertColumnMeasureWidth
const cAssertWidth = (label, data) => {
return Chain.label(
`Assert width of table ${label} after inserting column`,
NamedChain.asChain([
NamedChain.direct(NamedChain.inputName(), Chain.identity, 'editor'),
NamedChain.direct('editor', cInsertColumnMeasureWidth(label, data), 'widths'),
NamedChain.read('widths', cAssertWidths)
])
);
};
示例5: cMergeResizeUnmergeMeasureWidth
const cMergeResizeSplitAssertWidth = (label, data) => {
return Chain.label(
`Assert width of table ${label}`,
NamedChain.asChain([
NamedChain.direct(NamedChain.inputName(), Chain.identity, 'editor'),
NamedChain.direct('editor', cMergeResizeUnmergeMeasureWidth(label, data), 'widths'),
NamedChain.read('widths', cAssertWidths)
])
);
};
示例6: cGetImageSources
const sAssertImageFlip = (label) => {
return Chain.asStep({editor}, [
Chain.label(`Assert ${label}`,
NamedChain.asChain([
NamedChain.direct(NamedChain.inputName(), Chain.identity, 'editor'),
NamedChain.direct('editor', cGetImageSources(label), 'urls'),
NamedChain.read('urls', Chain.op((urls) => {
Assertions.assertEq(`Image should be flipped: ${label}`, true, ( urls.srcBeforeFlip !== urls.srcAfterFlip ));
}))
]))
]);
};
示例7: TestExtras
UnitTest.asynctest('WindowManager:inline-dialog Test', (success, failure) => {
const helpers = TestExtras();
const windowManager = WindowManager.setup(helpers.extras);
const cGetDialogLabelId = Chain.binder((dialogE: Element) => {
if (Attr.has(dialogE, 'aria-labelledby')) {
const labelId = Attr.get(dialogE, 'aria-labelledby');
return labelId.length > 0 ? Result.value(labelId) : Result.error('Dialog has zero length aria-labelledby attribute');
} else {
return Result.error('Dialog has no aria-labelledby attribute');
}
});
const sAssertDialogLabelledBy =
Chain.asStep(Body.body(), [NamedChain.asChain([
NamedChain.direct(NamedChain.inputName(), UiFinder.cFindIn('[role="dialog"]'), 'dialog'),
NamedChain.direct('dialog', cGetDialogLabelId, 'labelId'),
NamedChain.bundle((obj) => UiFinder.findIn(obj.dialog, `#${obj.labelId}`)),
])]);
const sTestDialogLabelled = (params) =>
Logger.t(
`Dialog should have "aria-labelledby" for config "${JSON.stringify(params)}"`,
GeneralSteps.sequence([
Step.sync(() => {
const dialogSpec: Types.Dialog.DialogApi<{}> = {
title: 'Silver Test Inline (Toolbar) Dialog',
body: {
type: 'panel',
items: []
},
buttons: [],
initialData: {}
};
windowManager.open(dialogSpec, params, Fun.noop );
}),
sAssertDialogLabelledBy,
])
);
Pipeline.async({}, [
TestHelpers.GuiSetup.mAddStyles(Element.fromDom(document), [
'.tox-dialog { background: white; border: 2px solid black; padding: 1em; margin: 1em; }'
]),
sTestDialogLabelled({ inline: 'toolbar' }),
sTestDialogLabelled({ inline: 'not-inline!!' }),
TestHelpers.GuiSetup.mRemoveStyles
], () => {
helpers.destroy();
success();
}, failure);
});
示例8: next
const cWaitForDialog = () => Chain.control(
NamedChain.asChain([
NamedChain.direct(NamedChain.inputName(), Chain.identity, 'editor'),
NamedChain.direct('editor', cTinyUI, 'tinyUi'),
// Hmm. We might need an API to handle the case where you need to pass logs through a subchain.
NamedChain.direct('tinyUi', Chain.on((tinyUi, next, die, logs) => {
const subchain = tinyUi.cWaitForPopup('wait for dialog', 'div[role="dialog"]');
Chain.pipeline([subchain], (value, newLogs) => next(Chain.wrap(value), newLogs), die, logs);
}), '_'),
NamedChain.outputInput
]),
Guard.addLogging('Wait for dialog')
);
示例9:
const sBookmarkTest = (namedChains) => {
return Chain.asStep({}, [
NamedChain.asChain(Arr.flatten([
[ cCreateNamedEditor ],
namedChains,
[ cRemoveEditor ]
])
)]);
};
示例10: cClickContextToolbarButton
const cGetImageSources = (label) => {
return NamedChain.asChain(
[
NamedChain.direct(NamedChain.inputName(), Chain.identity, 'editor'),
Chain.label('Store img src before flip', NamedChain.write('srcBeforeFlip', cGetImageSrc)),
Chain.label('Flip image', NamedChain.read('editor', cClickContextToolbarButton(label))),
// Wait for image to flip
Chain.wait(500),
Chain.label('Store img src after flip', NamedChain.write('srcAfterFlip', cGetImageSrc)),
NamedChain.merge(['srcBeforeFlip', 'srcAfterFlip'], 'urls'),
NamedChain.output('urls')
]
);
};