completing DiscussionViewer testing

This commit is contained in:
El RIDO 2018-01-02 15:38:37 +01:00
parent fcb4249e01
commit a95701bba8
No known key found for this signature in database
GPG key ID: 0F5C940A6BD81F92
4 changed files with 56 additions and 14 deletions

View file

@ -977,7 +977,7 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) {
if (typeof customHandler === 'function') { if (typeof customHandler === 'function') {
var handlerResult = customHandler(alertType[id], $element, args, icon); var handlerResult = customHandler(alertType[id], $element, args, icon);
if (handlerResult === true) { if (handlerResult === true) {
// if it returs true, skip own handler // if it returns true, skip own handler
return; return;
} }
if (handlerResult instanceof jQuery) { if (handlerResult instanceof jQuery) {

View file

@ -2,7 +2,7 @@
var common = require('../common'); var common = require('../common');
describe('DiscussionViewer', function () { describe('DiscussionViewer', function () {
describe('handleNotification, addComment, finishDiscussion, prepareNewDiscussion, getReplyMessage, getReplyNickname, getReplyCommentId & highlightComment', function () { describe('handleNotification, prepareNewDiscussion, addComment, finishDiscussion, getReplyMessage, getReplyNickname, getReplyCommentId & highlightComment', function () {
this.timeout(30000); this.timeout(30000);
before(function () { before(function () {
cleanup(); cleanup();
@ -12,8 +12,8 @@ describe('DiscussionViewer', function () {
'displays & hides comments as requested', 'displays & hides comments as requested',
jsc.array( jsc.array(
jsc.record({ jsc.record({
id: jsc.nearray(common.jscAlnumString()), idArray: jsc.nearray(common.jscAlnumString()),
parentid: jsc.nearray(common.jscAlnumString()), parentidArray: jsc.nearray(common.jscAlnumString()),
data: jsc.string, data: jsc.string,
meta: jsc.record({ meta: jsc.record({
nickname: jsc.string, nickname: jsc.string,
@ -22,7 +22,13 @@ describe('DiscussionViewer', function () {
}) })
}) })
), ),
function (comments) { 'nat',
'bool',
'string',
'string',
jsc.elements(['loading', 'danger', 'other']),
'nestring',
function (comments, commentKey, fadeOut, nickname, message, alertType, alert) {
var clean = jsdom(), var clean = jsdom(),
results = []; results = [];
$('body').html( $('body').html(
@ -45,6 +51,7 @@ describe('DiscussionViewer', function () {
'aria-hidden="true"></span> </div><button id="replybutton" ' + 'aria-hidden="true"></span> </div><button id="replybutton" ' +
'class="btn btn-default btn-sm">Post comment</button></div></div>' 'class="btn btn-default btn-sm">Post comment</button></div></div>'
); );
$.PrivateBin.Model.init();
$.PrivateBin.DiscussionViewer.init(); $.PrivateBin.DiscussionViewer.init();
results.push( results.push(
!$('#discussion').hasClass('hidden') !$('#discussion').hasClass('hidden')
@ -53,18 +60,53 @@ describe('DiscussionViewer', function () {
results.push( results.push(
$('#discussion').hasClass('hidden') $('#discussion').hasClass('hidden')
); );
comments.forEach(function (originalComment) { comments.forEach(function (comment) {
var comment = { comment.id = comment.idArray.join('');
id: originalComment.id.join(''), comment.parentid = comment.parentidArray.join('');
parentid: originalComment.parentid.join(''),
data: originalComment.data,
meta: originalComment.meta
}
$.PrivateBin.DiscussionViewer.addComment(comment, comment.data, comment.meta.nickname); $.PrivateBin.DiscussionViewer.addComment(comment, comment.data, comment.meta.nickname);
}); });
results.push( results.push(
$('#discussion').hasClass('hidden') $('#discussion').hasClass('hidden')
); );
$.PrivateBin.DiscussionViewer.finishDiscussion();
results.push(
!$('#discussion').hasClass('hidden') &&
comments.length + 1 >= $('#commentcontainer').children().length
);
if (comments.length > 0) {
if (commentKey >= comments.length) {
commentKey = commentKey % comments.length;
}
$.PrivateBin.DiscussionViewer.highlightComment(comments[commentKey].id, fadeOut);
results.push(
$('#comment_' + comments[commentKey].id).hasClass('highlight')
);
}
$('#commentcontainer').find('button')[0].click();
results.push(
!$('#reply').hasClass('hidden')
);
$('#reply #nickname').val(nickname);
$('#reply #replymessage').val(message);
$.PrivateBin.DiscussionViewer.getReplyCommentId();
results.push(
$.PrivateBin.DiscussionViewer.getReplyNickname() === $('#reply #nickname').val() &&
$.PrivateBin.DiscussionViewer.getReplyMessage() === $('#reply #replymessage').val()
);
var notificationResult = $.PrivateBin.DiscussionViewer.handleNotification(alertType == 'other' ? alert : alertType);
if (alertType == 'loading') {
results.push(notificationResult === false);
} else {
results.push(
alertType == 'danger' ? (
notificationResult.hasClass('alert-danger') &&
!notificationResult.hasClass('alert-info')
) : (
!notificationResult.hasClass('alert-danger') &&
notificationResult.hasClass('alert-info')
)
);
}
clean(); clean();
return results.every(element => element); return results.every(element => element);
} }

View file

@ -75,7 +75,7 @@ if ($MARKDOWN):
<?php <?php
endif; endif;
?> ?>
<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-msvuz4bHPzxA4SPt80AzVlD8DybEUb+3819GfmoyMin//9poPKN7cPp8pXgLwQUxxaxYK9bUpXj7UmbSNLU+Xg==" crossorigin="anonymous"></script> <script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-1BoGv9oPfrxI6QUHqWeW6bcbK2ix8Tya2dKrHupQk3vI1XgKcSmAJWchzQghRYhG9WFlTBW6jPJBDb9lTj+gSw==" crossorigin="anonymous"></script>
<!--[if lt IE 10]> <!--[if lt IE 10]>
<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style> <style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style>
<![endif]--> <![endif]-->

View file

@ -54,7 +54,7 @@ if ($QRCODE):
<?php <?php
endif; endif;
?> ?>
<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-msvuz4bHPzxA4SPt80AzVlD8DybEUb+3819GfmoyMin//9poPKN7cPp8pXgLwQUxxaxYK9bUpXj7UmbSNLU+Xg==" crossorigin="anonymous"></script> <script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-1BoGv9oPfrxI6QUHqWeW6bcbK2ix8Tya2dKrHupQk3vI1XgKcSmAJWchzQghRYhG9WFlTBW6jPJBDb9lTj+gSw==" crossorigin="anonymous"></script>
<!--[if lt IE 10]> <!--[if lt IE 10]>
<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style> <style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style>
<![endif]--> <![endif]-->