Fix tests which are wonky in Safari
Change-Id: I5f60afd9302581204c9ab08eda10a2273677b4fa
This commit is contained in:
committed by
Dave Borowitz
parent
634a67bf76
commit
f531d0aeb9
@@ -36,7 +36,7 @@ limitations under the License.
|
||||
var element;
|
||||
var server;
|
||||
|
||||
setup(function() {
|
||||
setup(function(done) {
|
||||
element = fixture('basic');
|
||||
server = sinon.fakeServer.create();
|
||||
|
||||
@@ -91,7 +91,9 @@ limitations under the License.
|
||||
|
||||
element.changeNum = '42';
|
||||
element.patchNum = '2';
|
||||
element.reload();
|
||||
element.reload().then(function() {
|
||||
done();
|
||||
});
|
||||
|
||||
server.respond();
|
||||
});
|
||||
|
||||
@@ -87,7 +87,6 @@
|
||||
},
|
||||
_savedPrefs: Object,
|
||||
|
||||
_diffRequestsPromise: Object, // Used for testing.
|
||||
_diffPreferencesPromise: Object, // Used for testing.
|
||||
},
|
||||
|
||||
@@ -157,7 +156,7 @@
|
||||
}.bind(this)));
|
||||
}
|
||||
|
||||
this._diffRequestsPromise = Promise.all(promises).then(function() {
|
||||
return Promise.all(promises).then(function() {
|
||||
this._render();
|
||||
this._loading = false;
|
||||
}.bind(this)).catch(function(err) {
|
||||
|
||||
@@ -162,86 +162,85 @@ limitations under the License.
|
||||
patchNum: 2,
|
||||
};
|
||||
|
||||
element.reload();
|
||||
server.respond();
|
||||
|
||||
// Allow events to fire and the threads to render.
|
||||
flush(function() {
|
||||
var leftThreadEls =
|
||||
Polymer.dom(element.$.leftDiff.root).querySelectorAll(
|
||||
'gr-diff-comment-thread');
|
||||
assert.equal(leftThreadEls.length, 1);
|
||||
assert.equal(leftThreadEls[0].comments.length, 1);
|
||||
|
||||
var rightThreadEls =
|
||||
Polymer.dom(element.$.rightDiff.root).querySelectorAll(
|
||||
'gr-diff-comment-thread');
|
||||
assert.equal(rightThreadEls.length, 1);
|
||||
assert.equal(rightThreadEls[0].comments.length, 2);
|
||||
|
||||
var index = leftThreadEls[0].getAttribute('data-index');
|
||||
var leftFillerEls =
|
||||
Polymer.dom(element.$.leftDiff.root).querySelectorAll(
|
||||
'.commentThread.filler[data-index="' + index + '"]');
|
||||
assert.equal(leftFillerEls.length, 1);
|
||||
var rightFillerEls =
|
||||
Polymer.dom(element.$.rightDiff.root).querySelectorAll(
|
||||
'[data-index="' + index + '"]');
|
||||
assert.equal(rightFillerEls.length, 2);
|
||||
|
||||
for (var i = 0; i < rightFillerEls.length; i++) {
|
||||
assert.isTrue(rightFillerEls[i].classList.contains('filler'));
|
||||
}
|
||||
var originalHeight = rightFillerEls[0].offsetHeight;
|
||||
assert.equal(rightFillerEls[1].offsetHeight, originalHeight);
|
||||
assert.equal(leftThreadEls[0].offsetHeight, originalHeight);
|
||||
assert.equal(leftFillerEls[0].offsetHeight, originalHeight);
|
||||
|
||||
// Create a comment on the opposite side of the first comment.
|
||||
var rightLineEL = element.$.rightDiff.$$(
|
||||
'.lineNum[data-index="' + (index - 1) + '"]');
|
||||
assert.ok(rightLineEL);
|
||||
MockInteractions.tap(rightLineEL);
|
||||
element.reload().then(function() {
|
||||
flush(function() {
|
||||
var newThreadEls =
|
||||
Polymer.dom(element.$.rightDiff.root).querySelectorAll(
|
||||
'[data-index="' + index + '"]');
|
||||
assert.equal(newThreadEls.length, 2);
|
||||
for (var i = 0; i < newThreadEls.length; i++) {
|
||||
assert.isTrue(
|
||||
newThreadEls[i].classList.contains('commentThread') ||
|
||||
newThreadEls[i].tagName == 'GR-DIFF-COMMENT-THREAD');
|
||||
var leftThreadEls =
|
||||
Polymer.dom(element.$.leftDiff.root).querySelectorAll(
|
||||
'gr-diff-comment-thread');
|
||||
assert.equal(leftThreadEls.length, 1);
|
||||
assert.equal(leftThreadEls[0].comments.length, 1);
|
||||
|
||||
var rightThreadEls =
|
||||
Polymer.dom(element.$.rightDiff.root).querySelectorAll(
|
||||
'gr-diff-comment-thread');
|
||||
assert.equal(rightThreadEls.length, 1);
|
||||
assert.equal(rightThreadEls[0].comments.length, 2);
|
||||
|
||||
var index = leftThreadEls[0].getAttribute('data-index');
|
||||
var leftFillerEls =
|
||||
Polymer.dom(element.$.leftDiff.root).querySelectorAll(
|
||||
'.commentThread.filler[data-index="' + index + '"]');
|
||||
assert.equal(leftFillerEls.length, 1);
|
||||
var rightFillerEls =
|
||||
Polymer.dom(element.$.rightDiff.root).querySelectorAll(
|
||||
'[data-index="' + index + '"]');
|
||||
assert.equal(rightFillerEls.length, 2);
|
||||
|
||||
for (var i = 0; i < rightFillerEls.length; i++) {
|
||||
assert.isTrue(rightFillerEls[i].classList.contains('filler'));
|
||||
}
|
||||
var newHeight = newThreadEls[0].offsetHeight;
|
||||
assert.equal(newThreadEls[1].offsetHeight, newHeight);
|
||||
assert.equal(leftFillerEls[0].offsetHeight, newHeight);
|
||||
assert.equal(leftThreadEls[0].offsetHeight, newHeight);
|
||||
var originalHeight = rightFillerEls[0].offsetHeight;
|
||||
assert.equal(rightFillerEls[1].offsetHeight, originalHeight);
|
||||
assert.equal(leftThreadEls[0].offsetHeight, originalHeight);
|
||||
assert.equal(leftFillerEls[0].offsetHeight, originalHeight);
|
||||
|
||||
// The editing mode height of the right comment will be greater than
|
||||
// the non-editing mode height of the left comment.
|
||||
assert.isAbove(newHeight, originalHeight);
|
||||
|
||||
// Discard the right thread and ensure the left comment heights are
|
||||
// back to their original values.
|
||||
newThreadEls[1].addEventListener('discard', function() {
|
||||
rightFillerEls =
|
||||
Polymer.dom(element.$.rightDiff.root).querySelectorAll(
|
||||
'[data-index="' + index + '"]');
|
||||
assert.equal(rightFillerEls.length, 2);
|
||||
|
||||
for (var i = 0; i < rightFillerEls.length; i++) {
|
||||
assert.isTrue(rightFillerEls[i].classList.contains('filler'));
|
||||
// Create a comment on the opposite side of the first comment.
|
||||
var rightLineEL = element.$.rightDiff.$$(
|
||||
'.lineNum[data-index="' + (index - 1) + '"]');
|
||||
assert.ok(rightLineEL);
|
||||
MockInteractions.tap(rightLineEL);
|
||||
flush(function() {
|
||||
var newThreadEls =
|
||||
Polymer.dom(element.$.rightDiff.root).querySelectorAll(
|
||||
'[data-index="' + index + '"]');
|
||||
assert.equal(newThreadEls.length, 2);
|
||||
for (var i = 0; i < newThreadEls.length; i++) {
|
||||
assert.isTrue(
|
||||
newThreadEls[i].classList.contains('commentThread') ||
|
||||
newThreadEls[i].tagName == 'GR-DIFF-COMMENT-THREAD');
|
||||
}
|
||||
var originalHeight = rightFillerEls[0].offsetHeight;
|
||||
assert.equal(rightFillerEls[1].offsetHeight, originalHeight);
|
||||
assert.equal(leftThreadEls[0].offsetHeight, originalHeight);
|
||||
assert.equal(leftFillerEls[0].offsetHeight, originalHeight);
|
||||
done();
|
||||
var newHeight = newThreadEls[0].offsetHeight;
|
||||
assert.equal(newThreadEls[1].offsetHeight, newHeight);
|
||||
assert.equal(leftFillerEls[0].offsetHeight, newHeight);
|
||||
assert.equal(leftThreadEls[0].offsetHeight, newHeight);
|
||||
|
||||
// The editing mode height of the right comment will be greater than
|
||||
// the non-editing mode height of the left comment.
|
||||
assert.isAbove(newHeight, originalHeight);
|
||||
|
||||
// Discard the right thread and ensure the left comment heights are
|
||||
// back to their original values.
|
||||
newThreadEls[1].addEventListener('discard', function() {
|
||||
rightFillerEls =
|
||||
Polymer.dom(element.$.rightDiff.root).querySelectorAll(
|
||||
'[data-index="' + index + '"]');
|
||||
assert.equal(rightFillerEls.length, 2);
|
||||
|
||||
for (var i = 0; i < rightFillerEls.length; i++) {
|
||||
assert.isTrue(rightFillerEls[i].classList.contains('filler'));
|
||||
}
|
||||
var originalHeight = rightFillerEls[0].offsetHeight;
|
||||
assert.equal(rightFillerEls[1].offsetHeight, originalHeight);
|
||||
assert.equal(leftThreadEls[0].offsetHeight, originalHeight);
|
||||
assert.equal(leftFillerEls[0].offsetHeight, originalHeight);
|
||||
done();
|
||||
});
|
||||
var commentEl = newThreadEls[1].$$('gr-diff-comment');
|
||||
commentEl.fire('discard', null, {bubbles: false});
|
||||
});
|
||||
var commentEl = newThreadEls[1].$$('gr-diff-comment');
|
||||
commentEl.fire('discard', null, {bubbles: false});
|
||||
});
|
||||
});
|
||||
server.respond();
|
||||
});
|
||||
|
||||
test('intraline normalization', function() {
|
||||
|
||||
@@ -19,10 +19,7 @@
|
||||
*/
|
||||
var app = {
|
||||
accountReady: {
|
||||
then: function(cb) { cb(); },
|
||||
},
|
||||
configReady: {
|
||||
then: function(cb) { cb(); },
|
||||
then: function(cb) { return cb(); },
|
||||
},
|
||||
loggedIn: false,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user