Merge branch 'develop' of github.com:ether/etherpad-lite into require-kernel-change
commit
422cfec27a
|
@ -35,7 +35,7 @@ var isNodeText = Ace2Common.isNodeText,
|
||||||
htmlPrettyEscape = Ace2Common.htmlPrettyEscape,
|
htmlPrettyEscape = Ace2Common.htmlPrettyEscape,
|
||||||
noop = Ace2Common.noop;
|
noop = Ace2Common.noop;
|
||||||
var hooks = require('./pluginfw/hooks');
|
var hooks = require('./pluginfw/hooks');
|
||||||
|
var browser = require('./browser').browser;
|
||||||
|
|
||||||
function Ace2Inner(){
|
function Ace2Inner(){
|
||||||
|
|
||||||
|
@ -51,7 +51,6 @@ function Ace2Inner(){
|
||||||
var SkipList = require('./skiplist');
|
var SkipList = require('./skiplist');
|
||||||
var undoModule = require('./undomodule').undoModule;
|
var undoModule = require('./undomodule').undoModule;
|
||||||
var AttributeManager = require('./AttributeManager');
|
var AttributeManager = require('./AttributeManager');
|
||||||
var browser = require('./browser');
|
|
||||||
|
|
||||||
var DEBUG = false; //$$ build script replaces the string "var DEBUG=true;//$$" with "var DEBUG=false;"
|
var DEBUG = false; //$$ build script replaces the string "var DEBUG=true;//$$" with "var DEBUG=false;"
|
||||||
// changed to false
|
// changed to false
|
||||||
|
|
|
@ -3,3 +3,7 @@
|
||||||
## Frontend
|
## Frontend
|
||||||
|
|
||||||
To run the tests, point your browser to `<yourdomainhere>/tests/frontend`
|
To run the tests, point your browser to `<yourdomainhere>/tests/frontend`
|
||||||
|
|
||||||
|
## Backend
|
||||||
|
|
||||||
|
To run the tests, run ``bin/backendTests.sh``
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<div id="iframe-container"></div>
|
<div id="iframe-container"></div>
|
||||||
|
|
||||||
<script src="/static/js/jquery.js"></script>
|
<script src="/static/js/jquery.js"></script>
|
||||||
<script src="/static/js/jquery_browser.js"></script>
|
<script src="/static/js/browser.js"></script>
|
||||||
<script src="lib/underscore.js"></script>
|
<script src="lib/underscore.js"></script>
|
||||||
|
|
||||||
<script src="lib/mocha.js"></script>
|
<script src="lib/mocha.js"></script>
|
||||||
|
@ -22,6 +22,5 @@
|
||||||
<script src="helper.js"></script>
|
<script src="helper.js"></script>
|
||||||
|
|
||||||
<script src="specs_list.js"></script>
|
<script src="specs_list.js"></script>
|
||||||
|
|
||||||
<script src="runner.js"></script>
|
<script src="runner.js"></script>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -2,8 +2,9 @@
|
||||||
(function($) {
|
(function($) {
|
||||||
$.fn.purgeFrame = function() {
|
$.fn.purgeFrame = function() {
|
||||||
var deferred;
|
var deferred;
|
||||||
|
var browser = bowser;
|
||||||
|
|
||||||
if ($.browser.msie && parseFloat($.browser.version, 10) < 9) {
|
if (browser.msie && parseFloat(browser.version, 10) < 9) {
|
||||||
deferred = purge(this);
|
deferred = purge(this);
|
||||||
} else {
|
} else {
|
||||||
this.remove();
|
this.remove();
|
||||||
|
@ -36,4 +37,4 @@
|
||||||
|
|
||||||
return deferred.promise();
|
return deferred.promise();
|
||||||
}
|
}
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
|
|
@ -162,7 +162,8 @@ $(function(){
|
||||||
}
|
}
|
||||||
|
|
||||||
//allow cross iframe access
|
//allow cross iframe access
|
||||||
if ((!$.browser.msie) && (!($.browser.mozilla && $.browser.version.indexOf("1.8.") == 0))) {
|
var browser = bowser;
|
||||||
|
if ((!browser.msie) && (!(browser.mozilla && browser.version.indexOf("1.8.") == 0))) {
|
||||||
document.domain = document.domain; // for comet
|
document.domain = document.domain; // for comet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,9 @@ describe("bold button", function(){
|
||||||
|
|
||||||
//select this text element
|
//select this text element
|
||||||
$firstTextElement.sendkeys('{selectall}');
|
$firstTextElement.sendkeys('{selectall}');
|
||||||
if(inner$.browser.mozilla){ // if it's a mozilla browser
|
console.log(inner$(window)[0].bowser);
|
||||||
|
|
||||||
|
if(inner$(window)[0].bowser.firefox){ // if it's a mozilla browser
|
||||||
var evtType = "keypress";
|
var evtType = "keypress";
|
||||||
}else{
|
}else{
|
||||||
var evtType = "keydown";
|
var evtType = "keydown";
|
||||||
|
|
|
@ -1,11 +1,19 @@
|
||||||
describe("As the caret is moved is the UI properly updated?", function(){
|
describe("As the caret is moved is the UI properly updated?", function(){
|
||||||
var padName;
|
var padName;
|
||||||
var numberOfRows = 50;
|
var numberOfRows = 50;
|
||||||
|
/*
|
||||||
|
|
||||||
it("creates a pad", function(done) {
|
//create a new pad before each test run
|
||||||
|
beforeEach(function(cb){
|
||||||
|
helper.newPad(cb);
|
||||||
|
this.timeout(60000);
|
||||||
|
});
|
||||||
|
|
||||||
|
xit("creates a pad", function(done) {
|
||||||
padName = helper.newPad(done);
|
padName = helper.newPad(done);
|
||||||
this.timeout(60000);
|
this.timeout(60000);
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
/* Tests to do
|
/* Tests to do
|
||||||
* Keystroke up (38), down (40), left (37), right (39) with and without special keys IE control / shift
|
* Keystroke up (38), down (40), left (37), right (39) with and without special keys IE control / shift
|
||||||
|
@ -20,10 +28,12 @@ describe("As the caret is moved is the UI properly updated?", function(){
|
||||||
* How do we keep the authors focus on a line if the lines above the author are modified? We should only redraw the user to a location if they are typing and make sure shift and arrow keys aren't redrawing the UI else highlight - copy/paste would get broken
|
* How do we keep the authors focus on a line if the lines above the author are modified? We should only redraw the user to a location if they are typing and make sure shift and arrow keys aren't redrawing the UI else highlight - copy/paste would get broken
|
||||||
* How can we simulate an edit event in the test framework?
|
* How can we simulate an edit event in the test framework?
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
// THIS DOESNT WORK AS IT DOESNT MOVE THE CURSOR!
|
// THIS DOESNT WORK IN CHROME AS IT DOESNT MOVE THE CURSOR!
|
||||||
it("down arrow", function(done){
|
it("down arrow", function(done){
|
||||||
var inner$ = helper.padInner$;
|
var inner$ = helper.padInner$;
|
||||||
|
var chrome$ = helper.padChrome$;
|
||||||
|
|
||||||
var $newFirstTextElement = inner$("div").first();
|
var $newFirstTextElement = inner$("div").first();
|
||||||
$newFirstTextElement.focus();
|
$newFirstTextElement.focus();
|
||||||
keyEvent(inner$, 37, false, false); // arrow down
|
keyEvent(inner$, 37, false, false); // arrow down
|
||||||
|
@ -31,9 +41,10 @@ describe("As the caret is moved is the UI properly updated?", function(){
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
/*
|
|
||||||
it("Creates N lines", function(done){
|
it("Creates N lines", function(done){
|
||||||
var inner$ = helper.padInner$;
|
var inner$ = helper.padInner$;
|
||||||
|
console.log(inner$);
|
||||||
var chrome$ = helper.padChrome$;
|
var chrome$ = helper.padChrome$;
|
||||||
var $newFirstTextElement = inner$("div").first();
|
var $newFirstTextElement = inner$("div").first();
|
||||||
|
|
||||||
|
@ -224,7 +235,6 @@ describe("As the caret is moved is the UI properly updated?", function(){
|
||||||
});
|
});
|
||||||
var i = 0;
|
var i = 0;
|
||||||
while(i < numberOfRows){ // press down arrow
|
while(i < numberOfRows){ // press down arrow
|
||||||
console.log("dwn");
|
|
||||||
keyEvent(inner$, 40, false, false);
|
keyEvent(inner$, 40, false, false);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
@ -287,7 +297,7 @@ function prepareDocument(n, target){ // generates a random document with random
|
||||||
}
|
}
|
||||||
|
|
||||||
function keyEvent(target, charCode, ctrl, shift){ // sends a charCode to the window
|
function keyEvent(target, charCode, ctrl, shift){ // sends a charCode to the window
|
||||||
if(target.browser.mozilla){ // if it's a mozilla browser
|
if(inner$(window)[0].bowser.firefox){ // if it's a mozilla browser
|
||||||
var evtType = "keypress";
|
var evtType = "keypress";
|
||||||
}else{
|
}else{
|
||||||
var evtType = "keydown";
|
var evtType = "keydown";
|
||||||
|
|
|
@ -15,7 +15,7 @@ describe("indentation button", function(){
|
||||||
//select this text element
|
//select this text element
|
||||||
$firstTextElement.sendkeys('{selectall}');
|
$firstTextElement.sendkeys('{selectall}');
|
||||||
|
|
||||||
if(inner$.browser.mozilla){ // if it's a mozilla browser
|
if(inner$(window)[0].bowser.firefox){ // if it's a mozilla browser
|
||||||
var evtType = "keypress";
|
var evtType = "keypress";
|
||||||
}else{
|
}else{
|
||||||
var evtType = "keydown";
|
var evtType = "keydown";
|
||||||
|
|
|
@ -44,7 +44,7 @@ describe("italic some text", function(){
|
||||||
//select this text element
|
//select this text element
|
||||||
$firstTextElement.sendkeys('{selectall}');
|
$firstTextElement.sendkeys('{selectall}');
|
||||||
|
|
||||||
if(inner$.browser.mozilla){ // if it's a mozilla browser
|
if(inner$(window)[0].bowser.firefox){ // if it's a mozilla browser
|
||||||
var evtType = "keypress";
|
var evtType = "keypress";
|
||||||
}else{
|
}else{
|
||||||
var evtType = "keydown";
|
var evtType = "keydown";
|
||||||
|
|
|
@ -47,7 +47,7 @@ describe("undo button then redo button", function(){
|
||||||
var modifiedValue = $firstTextElement.text(); // get the modified value
|
var modifiedValue = $firstTextElement.text(); // get the modified value
|
||||||
expect(modifiedValue).not.to.be(originalValue); // expect the value to change
|
expect(modifiedValue).not.to.be(originalValue); // expect the value to change
|
||||||
|
|
||||||
if(inner$.browser.mozilla){ // if it's a mozilla browser
|
if(inner$(window)[0].bowser.firefox){ // if it's a mozilla browser
|
||||||
var evtType = "keypress";
|
var evtType = "keypress";
|
||||||
}else{
|
}else{
|
||||||
var evtType = "keydown";
|
var evtType = "keydown";
|
||||||
|
|
|
@ -19,7 +19,7 @@ describe('Responsiveness of Editor', function() {
|
||||||
helper.newPad(cb);
|
helper.newPad(cb);
|
||||||
this.timeout(6000);
|
this.timeout(6000);
|
||||||
});
|
});
|
||||||
it('Fast response to keypress in pad with large amount of contents', function(done) {
|
xit('Fast response to keypress in pad with large amount of contents', function(done) {
|
||||||
var inner$ = helper.padInner$;
|
var inner$ = helper.padInner$;
|
||||||
var chrome$ = helper.padChrome$;
|
var chrome$ = helper.padChrome$;
|
||||||
var chars = '0000000000'; // row of placeholder chars
|
var chars = '0000000000'; // row of placeholder chars
|
||||||
|
|
|
@ -4,7 +4,8 @@ describe("timeslider", function(){
|
||||||
helper.newPad(cb);
|
helper.newPad(cb);
|
||||||
this.timeout(6000);
|
this.timeout(6000);
|
||||||
});
|
});
|
||||||
it("loads adds a hundred revisions", function(done) {
|
|
||||||
|
it("loads adds a hundred revisions", function(done) { // passes
|
||||||
var inner$ = helper.padInner$;
|
var inner$ = helper.padInner$;
|
||||||
var chrome$ = helper.padChrome$;
|
var chrome$ = helper.padChrome$;
|
||||||
|
|
||||||
|
@ -56,7 +57,10 @@ describe("timeslider", function(){
|
||||||
}, 6000);
|
}, 6000);
|
||||||
}, revs*timePerRev);
|
}, revs*timePerRev);
|
||||||
});
|
});
|
||||||
it("changes the url when clicking on the timeslider", function(done) {
|
|
||||||
|
|
||||||
|
// Disabled as jquery trigger no longer works properly
|
||||||
|
xit("changes the url when clicking on the timeslider", function(done) {
|
||||||
var inner$ = helper.padInner$;
|
var inner$ = helper.padInner$;
|
||||||
var chrome$ = helper.padChrome$;
|
var chrome$ = helper.padChrome$;
|
||||||
|
|
||||||
|
@ -80,7 +84,6 @@ describe("timeslider", function(){
|
||||||
var $sliderBar = timeslider$('#ui-slider-bar');
|
var $sliderBar = timeslider$('#ui-slider-bar');
|
||||||
|
|
||||||
var latestContents = timeslider$('#padcontent').text();
|
var latestContents = timeslider$('#padcontent').text();
|
||||||
|
|
||||||
var oldUrl = $('#iframe-container iframe')[0].contentWindow.location.hash;
|
var oldUrl = $('#iframe-container iframe')[0].contentWindow.location.hash;
|
||||||
|
|
||||||
// Click somewhere on the timeslider
|
// Click somewhere on the timeslider
|
||||||
|
@ -111,6 +114,7 @@ describe("timeslider", function(){
|
||||||
var oldLength = inner$('body').text().length + newLines / 2;
|
var oldLength = inner$('body').text().length + newLines / 2;
|
||||||
expect( oldLength ).to.not.eql( 0 );
|
expect( oldLength ).to.not.eql( 0 );
|
||||||
inner$("div").first().sendkeys('a');
|
inner$("div").first().sendkeys('a');
|
||||||
|
var timeslider$;
|
||||||
|
|
||||||
// wait for our additional revision to be added
|
// wait for our additional revision to be added
|
||||||
helper.waitFor(function(){
|
helper.waitFor(function(){
|
||||||
|
@ -140,6 +144,7 @@ describe("timeslider", function(){
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it("checks the export url", function(done) {
|
it("checks the export url", function(done) {
|
||||||
var inner$ = helper.padInner$;
|
var inner$ = helper.padInner$;
|
||||||
var chrome$ = helper.padChrome$;
|
var chrome$ = helper.padChrome$;
|
||||||
|
|
|
@ -44,7 +44,7 @@ describe("undo button", function(){
|
||||||
var modifiedValue = $firstTextElement.text(); // get the modified value
|
var modifiedValue = $firstTextElement.text(); // get the modified value
|
||||||
expect(modifiedValue).not.to.be(originalValue); // expect the value to change
|
expect(modifiedValue).not.to.be(originalValue); // expect the value to change
|
||||||
|
|
||||||
if(inner$.browser.mozilla){ // if it's a mozilla browser
|
if(inner$(window)[0].bowser.firefox){ // if it's a mozilla browser
|
||||||
var evtType = "keypress";
|
var evtType = "keypress";
|
||||||
}else{
|
}else{
|
||||||
var evtType = "keydown";
|
var evtType = "keydown";
|
||||||
|
|
Loading…
Reference in New Issue