mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-01-31 19:02:59 +01:00
Tests: ShowChat fix (#4049)
Resolves https://github.com/ether/etherpad-lite/issues/3541
This commit is contained in:
parent
febd48954c
commit
40f36d7eb5
4 changed files with 51 additions and 4 deletions
|
@ -47,6 +47,9 @@ var chat = (function()
|
||||||
},
|
},
|
||||||
stickToScreen: function(fromInitialCall) // Make chat stick to right hand side of screen
|
stickToScreen: function(fromInitialCall) // Make chat stick to right hand side of screen
|
||||||
{
|
{
|
||||||
|
if(pad.settings.hideChat){
|
||||||
|
return;
|
||||||
|
}
|
||||||
chat.show();
|
chat.show();
|
||||||
isStuck = (!isStuck || fromInitialCall);
|
isStuck = (!isStuck || fromInitialCall);
|
||||||
$('#chatbox').hide();
|
$('#chatbox').hide();
|
||||||
|
|
|
@ -74,7 +74,7 @@ function randomString()
|
||||||
var getParameters = [
|
var getParameters = [
|
||||||
{ name: "noColors", checkVal: "true", callback: function(val) { settings.noColors = true; $('#clearAuthorship').hide(); } },
|
{ name: "noColors", checkVal: "true", callback: function(val) { settings.noColors = true; $('#clearAuthorship').hide(); } },
|
||||||
{ name: "showControls", checkVal: "true", callback: function(val) { $('#editbar').css('display', 'flex') } },
|
{ name: "showControls", checkVal: "true", callback: function(val) { $('#editbar').css('display', 'flex') } },
|
||||||
{ name: "showChat", checkVal: "true", callback: function(val) { $('#chaticon').show(); } },
|
{ name: "showChat", checkVal: null, callback: function(val) { if(val==="false"){settings.hideChat = true;chat.hide();$('#chaticon').hide();} } },
|
||||||
{ name: "showLineNumbers", checkVal: "false", callback: function(val) { settings.LineNumbersDisabled = true; } },
|
{ name: "showLineNumbers", checkVal: "false", callback: function(val) { settings.LineNumbersDisabled = true; } },
|
||||||
{ name: "useMonospaceFont", checkVal: "true", callback: function(val) { settings.useMonospaceFontGlobal = true; } },
|
{ name: "useMonospaceFont", checkVal: "true", callback: function(val) { settings.useMonospaceFontGlobal = true; } },
|
||||||
// If the username is set as a parameter we should set a global value that we can call once we have initiated the pad.
|
// If the username is set as a parameter we should set a global value that we can call once we have initiated the pad.
|
||||||
|
@ -82,7 +82,7 @@ var getParameters = [
|
||||||
// If the userColor is set as a parameter, set a global value to use once we have initiated the pad.
|
// If the userColor is set as a parameter, set a global value to use once we have initiated the pad.
|
||||||
{ name: "userColor", checkVal: null, callback: function(val) { settings.globalUserColor = decodeURIComponent(val); clientVars.userColor = decodeURIComponent(val); } },
|
{ name: "userColor", checkVal: null, callback: function(val) { settings.globalUserColor = decodeURIComponent(val); clientVars.userColor = decodeURIComponent(val); } },
|
||||||
{ name: "rtl", checkVal: "true", callback: function(val) { settings.rtlIsTrue = true } },
|
{ name: "rtl", checkVal: "true", callback: function(val) { settings.rtlIsTrue = true } },
|
||||||
{ name: "alwaysShowChat", checkVal: "true", callback: function(val) { chat.stickToScreen(); } },
|
{ name: "alwaysShowChat", checkVal: "true", callback: function(val) { if(!settings.hideChat) chat.stickToScreen(); } },
|
||||||
{ name: "chatAndUsers", checkVal: "true", callback: function(val) { chat.chatAndUsers(); } },
|
{ name: "chatAndUsers", checkVal: "true", callback: function(val) { chat.chatAndUsers(); } },
|
||||||
{ name: "lang", checkVal: null, callback: function(val) { window.html10n.localize([val, 'en']); createCookie('language', val); } }
|
{ name: "lang", checkVal: null, callback: function(val) { window.html10n.localize([val, 'en']); createCookie('language', val); } }
|
||||||
];
|
];
|
||||||
|
@ -92,7 +92,7 @@ function getParams()
|
||||||
// Tries server enforced options first..
|
// Tries server enforced options first..
|
||||||
for(var i = 0; i < getParameters.length; i++)
|
for(var i = 0; i < getParameters.length; i++)
|
||||||
{
|
{
|
||||||
var setting = getParameters[i];
|
var setting = getParameters[i];
|
||||||
var value = clientVars.padOptions[setting.name];
|
var value = clientVars.padOptions[setting.name];
|
||||||
if(value.toString() === setting.checkVal)
|
if(value.toString() === setting.checkVal)
|
||||||
{
|
{
|
||||||
|
@ -286,6 +286,8 @@ function handshake()
|
||||||
$('#chaticon').hide();
|
$('#chaticon').hide();
|
||||||
$('#options-chatandusers').parent().hide();
|
$('#options-chatandusers').parent().hide();
|
||||||
$('#options-stickychat').parent().hide();
|
$('#options-stickychat').parent().hide();
|
||||||
|
}else{
|
||||||
|
if(!settings.hideChat) $('#chaticon').show();
|
||||||
}
|
}
|
||||||
|
|
||||||
$("body").addClass(clientVars.readonly ? "readonly" : "readwrite")
|
$("body").addClass(clientVars.readonly ? "readonly" : "readwrite")
|
||||||
|
|
|
@ -99,6 +99,11 @@ var helper = {};
|
||||||
opts = _.defaults(cb, opts);
|
opts = _.defaults(cb, opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if opts.params is set we manipulate the URL to include URL parameters IE ?foo=Bah.
|
||||||
|
if(opts.params){
|
||||||
|
var encodedParams = "?" + $.param(opts.params);
|
||||||
|
}
|
||||||
|
|
||||||
//clear cookies
|
//clear cookies
|
||||||
if(opts.clearCookies){
|
if(opts.clearCookies){
|
||||||
helper.clearSessionCookies();
|
helper.clearSessionCookies();
|
||||||
|
@ -106,7 +111,7 @@ var helper = {};
|
||||||
|
|
||||||
if(!padName)
|
if(!padName)
|
||||||
padName = "FRONTEND_TEST_" + helper.randomString(20);
|
padName = "FRONTEND_TEST_" + helper.randomString(20);
|
||||||
$iframe = $("<iframe src='/p/" + padName + "'></iframe>");
|
$iframe = $("<iframe src='/p/" + padName + (encodedParams || '') + "'></iframe>");
|
||||||
|
|
||||||
//clean up inner iframe references
|
//clean up inner iframe references
|
||||||
helper.padChrome$ = helper.padOuter$ = helper.padInner$ = null;
|
helper.padChrome$ = helper.padOuter$ = helper.padInner$ = null;
|
||||||
|
|
|
@ -131,4 +131,41 @@ describe("Chat messages and UI", function(){
|
||||||
}, 10)
|
}, 10)
|
||||||
}, 10)
|
}, 10)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("Checks showChat=false URL Parameter hides chat then when removed it shows chat", function(done) {
|
||||||
|
this.timeout(60000);
|
||||||
|
var inner$ = helper.padInner$;
|
||||||
|
var chrome$ = helper.padChrome$;
|
||||||
|
|
||||||
|
setTimeout(function(){ //give it a second to save the username on the server side
|
||||||
|
helper.newPad({ // get a new pad, but don't clear the cookies
|
||||||
|
clearCookies: false,
|
||||||
|
params:{
|
||||||
|
showChat: "false"
|
||||||
|
}, cb: function(){
|
||||||
|
var chrome$ = helper.padChrome$;
|
||||||
|
var chaticon = chrome$("#chaticon");
|
||||||
|
// chat should be hidden.
|
||||||
|
expect(chaticon.is(":visible")).to.be(false);
|
||||||
|
|
||||||
|
|
||||||
|
setTimeout(function(){ //give it a second to save the username on the server side
|
||||||
|
helper.newPad({ // get a new pad, but don't clear the cookies
|
||||||
|
clearCookies: false
|
||||||
|
, cb: function(){
|
||||||
|
var chrome$ = helper.padChrome$;
|
||||||
|
var chaticon = chrome$("#chaticon");
|
||||||
|
// chat should be visible.
|
||||||
|
expect(chaticon.is(":visible")).to.be(true);
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue