Fix bug in comment control hiding
The logic for showing/hiding the 'Show x more' control for messages made some invalid assumptions, specifically regarding the content of the _visibleMessages array. This change adds a new function, _getHumanMessages, that is utilized in the affected functions to prune the array down to its proper contents to make the calculations about whether the control should be hidden and what its labels should say much easier. Bug: Issue 5749 Change-Id: I465fbff9c8deab0e2357461aa9bdf37e0e6a8299
This commit is contained in:
committed by
Wyatt Allen
parent
537f74ee4f
commit
5da159ee8d
@@ -128,6 +128,20 @@ limitations under the License.
|
||||
assert.isTrue(element.$.messageControlsContainer.hasAttribute('hidden'));
|
||||
});
|
||||
|
||||
test('message count still respects non-automated on toggle', function() {
|
||||
element.messages = _.times(10, randomMessage)
|
||||
.concat(_.times(11, randomAutomated));
|
||||
flushAsynchronousOperations();
|
||||
|
||||
assert.equal(element.$.oldMessagesBtn.innerText, 'Show 1 message');
|
||||
assert.isFalse(element.$.messageControlsContainer.hasAttribute('hidden'));
|
||||
MockInteractions.tap(element.$.automatedMessageToggle);
|
||||
flushAsynchronousOperations();
|
||||
|
||||
assert.equal(element.$.oldMessagesBtn.innerText, 'Show 1 message');
|
||||
assert.isFalse(element.$.messageControlsContainer.hasAttribute('hidden'));
|
||||
});
|
||||
|
||||
test('show all messages respects expand', function() {
|
||||
element.messages = _.times(10, randomAutomated)
|
||||
.concat(_.times(11, randomMessage));
|
||||
@@ -450,19 +464,34 @@ limitations under the License.
|
||||
|
||||
test('_getDelta', function() {
|
||||
var messages = [randomMessage()];
|
||||
assert.equal(element._getDelta(0, messages, false), 1);
|
||||
assert.equal(element._getDelta(0, messages, true), 1);
|
||||
assert.equal(element._getDelta([], messages, false), 1);
|
||||
assert.equal(element._getDelta([], messages, true), 1);
|
||||
|
||||
|
||||
messages = _.times(7, randomMessage);
|
||||
assert.equal(element._getDelta(0, messages, false), 5);
|
||||
assert.equal(element._getDelta(0, messages, true), 5);
|
||||
assert.equal(element._getDelta([], messages, false), 5);
|
||||
assert.equal(element._getDelta([], messages, true), 5);
|
||||
|
||||
messages = _.times(4, randomMessage)
|
||||
.concat(_.times(2, randomAutomated))
|
||||
.concat(_.times(3, randomMessage));
|
||||
assert.equal(element._getDelta(2, messages, false), 5);
|
||||
assert.equal(element._getDelta(2, messages, true), 7);
|
||||
|
||||
var dummyArr = _.times(2, randomMessage);
|
||||
assert.equal(element._getDelta(dummyArr, messages, false), 5);
|
||||
assert.equal(element._getDelta(dummyArr, messages, true), 7);
|
||||
});
|
||||
|
||||
test('_getHumanMessages', function() {
|
||||
assert.equal(
|
||||
element._getHumanMessages(_.times(5, randomAutomated)).length, 0);
|
||||
assert.equal(
|
||||
element._getHumanMessages(_.times(5, randomMessage)).length, 5);
|
||||
|
||||
var messages = _.shuffle(_.times(5, randomMessage)
|
||||
.concat(_.times(5, randomAutomated)));
|
||||
messages = element._getHumanMessages(messages);
|
||||
assert.equal(messages.length, 5);
|
||||
assert.isFalse(element._hasAutomatedMessages(messages));
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user