1949356ede
The eventual goal is to avoid UI-related stanza processing if the relevant chats aren't in the DOM. With the current architecture, chatboxes are created (and the stanzas related to them processed) even if `#conversejs` isn't in the DOM. * Initial work on making controlbox an element * Create a shared base class * Ceate ChatBoxViews proxy * Update sass now that certain classes are moved to converse-chats element
73 lines
2.9 KiB
JavaScript
73 lines
2.9 KiB
JavaScript
/*global mock, converse */
|
|
|
|
const u = converse.env.utils;
|
|
|
|
describe("The Login Form", function () {
|
|
|
|
it("contains a checkbox to indicate whether the computer is trusted or not",
|
|
mock.initConverse(
|
|
['chatBoxesInitialized'],
|
|
{ auto_login: false,
|
|
allow_registration: false },
|
|
async function (done, _converse) {
|
|
|
|
const cbview = await u.waitUntil(() => _converse.chatboxviews.get('controlbox'));
|
|
mock.toggleControlBox();
|
|
const checkboxes = cbview.querySelectorAll('input[type="checkbox"]');
|
|
expect(checkboxes.length).toBe(1);
|
|
|
|
const checkbox = checkboxes[0];
|
|
const label = cbview.querySelector(`label[for="${checkbox.getAttribute('id')}"]`);
|
|
expect(label.textContent).toBe('This is a trusted device');
|
|
expect(checkbox.checked).toBe(true);
|
|
|
|
cbview.querySelector('input[name="jid"]').value = 'romeo@montague.lit';
|
|
cbview.querySelector('input[name="password"]').value = 'secret';
|
|
|
|
expect(_converse.config.get('trusted')).toBe(true);
|
|
expect(_converse.getDefaultStore()).toBe('persistent');
|
|
cbview.querySelector('input[type="submit"]').click();
|
|
expect(_converse.config.get('trusted')).toBe(true);
|
|
expect(_converse.getDefaultStore()).toBe('persistent');
|
|
|
|
checkbox.click();
|
|
cbview.querySelector('input[type="submit"]').click();
|
|
expect(_converse.config.get('trusted')).toBe(false);
|
|
expect(_converse.getDefaultStore()).toBe('session');
|
|
done();
|
|
}));
|
|
|
|
it("checkbox can be set to false by default",
|
|
mock.initConverse(
|
|
['chatBoxesInitialized'],
|
|
{ auto_login: false,
|
|
allow_user_trust_override: 'off',
|
|
allow_registration: false },
|
|
async function (done, _converse) {
|
|
|
|
await u.waitUntil(() => _converse.chatboxviews.get('controlbox'))
|
|
const cbview = _converse.chatboxviews.get('controlbox');
|
|
mock.toggleControlBox();
|
|
const checkboxes = cbview.querySelectorAll('input[type="checkbox"]');
|
|
expect(checkboxes.length).toBe(1);
|
|
|
|
const checkbox = checkboxes[0];
|
|
const label = cbview.querySelector(`label[for="${checkbox.getAttribute('id')}"]`);
|
|
expect(label.textContent).toBe('This is a trusted device');
|
|
expect(checkbox.checked).toBe(false);
|
|
|
|
cbview.querySelector('input[name="jid"]').value = 'romeo@montague.lit';
|
|
cbview.querySelector('input[name="password"]').value = 'secret';
|
|
|
|
cbview.querySelector('input[type="submit"]').click();
|
|
expect(_converse.config.get('trusted')).toBe(false);
|
|
expect(_converse.getDefaultStore()).toBe('session');
|
|
|
|
checkbox.click();
|
|
cbview.querySelector('input[type="submit"]').click();
|
|
expect(_converse.config.get('trusted')).toBe(true);
|
|
expect(_converse.getDefaultStore()).toBe('persistent');
|
|
done();
|
|
}));
|
|
});
|