etherpad-lite/tests/frontend/specs/language.js
Prateek Saxena 2dd874376a Update frontend language tests for new keyboard shortcut convention
8af34a2295 introduced a failing test frontend test-
https://travis-ci.org/ether/etherpad-lite/builds/37931978

This commit updates both the German and English strings even though
the German locale files haven't been updated yet. The tests will
continue to fail but will stop as soon as translatewiki catches up.
2014-10-14 18:46:12 +05:30

135 lines
3.8 KiB
JavaScript

function deletecookie(name) {
document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
describe("Language select and change", function(){
// Destroy language cookies
deletecookie("language", null);
//create a new pad before each test run
beforeEach(function(cb){
helper.newPad(cb);
this.timeout(60000);
});
// Destroy language cookies
it("makes text german", function(done) {
var inner$ = helper.padInner$;
var chrome$ = helper.padChrome$;
//click on the settings button to make settings visible
var $settingsButton = chrome$(".buttonicon-settings");
$settingsButton.click();
//click the language button
var $language = chrome$("#languagemenu");
var $languageoption = $language.find("[value=de]");
//select german
$languageoption.attr('selected','selected');
$language.change();
helper.waitFor(function() {
return chrome$(".buttonicon-bold").parent()[0]["title"] == "Fett (Strg-B)";
})
.done(function(){
//get the value of the bold button
var $boldButton = chrome$(".buttonicon-bold").parent();
//get the title of the bold button
var boldButtonTitle = $boldButton[0]["title"];
//check if the language is now german
expect(boldButtonTitle).to.be("Fett (Strg-B)");
done();
});
});
it("makes text English", function(done) {
var inner$ = helper.padInner$;
var chrome$ = helper.padChrome$;
//click on the settings button to make settings visible
var $settingsButton = chrome$(".buttonicon-settings");
$settingsButton.click();
//click the language button
var $language = chrome$("#languagemenu");
//select english
$language.val("en");
$language.change();
//get the value of the bold button
var $boldButton = chrome$(".buttonicon-bold").parent();
helper.waitFor(function() { return $boldButton[0]["title"] != "Fett (Strg+B)";})
.done(function(){
//get the value of the bold button
var $boldButton = chrome$(".buttonicon-bold").parent();
//get the title of the bold button
var boldButtonTitle = $boldButton[0]["title"];
//check if the language is now English
expect(boldButtonTitle).to.be("Bold (Ctrl+B)");
done();
});
});
it("changes direction when picking an rtl lang", function(done) {
var inner$ = helper.padInner$;
var chrome$ = helper.padChrome$;
//click on the settings button to make settings visible
var $settingsButton = chrome$(".buttonicon-settings");
$settingsButton.click();
//click the language button
var $language = chrome$("#languagemenu");
var $languageoption = $language.find("[value=ar]");
//select arabic
// $languageoption.attr('selected','selected'); // Breaks the test..
$language.val("ar");
$languageoption.change();
helper.waitFor(function() {
return chrome$("html")[0]["dir"] != 'ltr';
})
.done(function(){
// check if the document's direction was changed
expect(chrome$("html")[0]["dir"]).to.be("rtl");
done();
});
});
it("changes direction when picking an ltr lang", function(done) {
var inner$ = helper.padInner$;
var chrome$ = helper.padChrome$;
//click on the settings button to make settings visible
var $settingsButton = chrome$(".buttonicon-settings");
$settingsButton.click();
//click the language button
var $language = chrome$("#languagemenu");
var $languageoption = $language.find("[value=en]");
//select english
//select arabic
$languageoption.attr('selected','selected');
$language.val("en");
$languageoption.change();
helper.waitFor(function() {
return chrome$("html")[0]["dir"] != 'rtl';
})
.done(function(){
// check if the document's direction was changed
expect(chrome$("html")[0]["dir"]).to.be("ltr");
done();
});
});
});