Tests: ShowChat fix (#4049)
Resolves https://github.com/ether/etherpad-lite/issues/3541pull/4054/head
parent
febd48954c
commit
40f36d7eb5
|
@ -47,6 +47,9 @@ var chat = (function()
|
|||
},
|
||||
stickToScreen: function(fromInitialCall) // Make chat stick to right hand side of screen
|
||||
{
|
||||
if(pad.settings.hideChat){
|
||||
return;
|
||||
}
|
||||
chat.show();
|
||||
isStuck = (!isStuck || fromInitialCall);
|
||||
$('#chatbox').hide();
|
||||
|
|
|
@ -74,7 +74,7 @@ function randomString()
|
|||
var getParameters = [
|
||||
{ name: "noColors", checkVal: "true", callback: function(val) { settings.noColors = true; $('#clearAuthorship').hide(); } },
|
||||
{ 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: "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.
|
||||
|
@ -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.
|
||||
{ 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: "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: "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..
|
||||
for(var i = 0; i < getParameters.length; i++)
|
||||
{
|
||||
var setting = getParameters[i];
|
||||
var setting = getParameters[i];
|
||||
var value = clientVars.padOptions[setting.name];
|
||||
if(value.toString() === setting.checkVal)
|
||||
{
|
||||
|
@ -286,6 +286,8 @@ function handshake()
|
|||
$('#chaticon').hide();
|
||||
$('#options-chatandusers').parent().hide();
|
||||
$('#options-stickychat').parent().hide();
|
||||
}else{
|
||||
if(!settings.hideChat) $('#chaticon').show();
|
||||
}
|
||||
|
||||
$("body").addClass(clientVars.readonly ? "readonly" : "readwrite")
|
||||
|
|
|
@ -99,6 +99,11 @@ var helper = {};
|
|||
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
|
||||
if(opts.clearCookies){
|
||||
helper.clearSessionCookies();
|
||||
|
@ -106,7 +111,7 @@ var helper = {};
|
|||
|
||||
if(!padName)
|
||||
padName = "FRONTEND_TEST_" + helper.randomString(20);
|
||||
$iframe = $("<iframe src='/p/" + padName + "'></iframe>");
|
||||
$iframe = $("<iframe src='/p/" + padName + (encodedParams || '') + "'></iframe>");
|
||||
|
||||
//clean up inner iframe references
|
||||
helper.padChrome$ = helper.padOuter$ = helper.padInner$ = null;
|
||||
|
|
|
@ -131,4 +131,41 @@ describe("Chat messages and UI", function(){
|
|||
}, 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 New Issue