214 lines
8.2 KiB
JavaScript
214 lines
8.2 KiB
JavaScript
/* INCLUDE:
|
|
jquery: js/jquery/jquery.ui.widget.js
|
|
jquery: js/jquery.quickreply.js
|
|
*/
|
|
|
|
var lifecycle = {
|
|
setup: function() {
|
|
this.links = {
|
|
replyto_entry_top: {
|
|
pid : 0,
|
|
replyto : 0,
|
|
dtid : "topcomment",
|
|
subject : ""
|
|
},
|
|
replyto_entry_bottom: {
|
|
pid : 0,
|
|
replyto : 0,
|
|
dtid : "bottomcomment",
|
|
subject : ""
|
|
},
|
|
existing_comment: {
|
|
pid : 1,
|
|
replyto : 1,
|
|
dtid : 1,
|
|
subject : ""
|
|
},
|
|
child_of_existing_comment: {
|
|
pid : 2,
|
|
replyto : 2,
|
|
dtid : 2,
|
|
subject : ""
|
|
},
|
|
hassubject : {
|
|
pid : 3,
|
|
replyto : 3,
|
|
dtid : 3,
|
|
subject : "Re: has subject"
|
|
}
|
|
}
|
|
|
|
if ( QUnit.config.current.module == "old" ) {
|
|
this.has_qr = function(selector) {
|
|
var prev_sibling = $("qrdiv").previousElementSibling || $("qrdiv").previousSibling;
|
|
if ( prev_sibling )
|
|
return prev_sibling.id == selector;
|
|
|
|
return false;
|
|
};
|
|
this.check_values = function(values) {
|
|
for( var element_id in values ) {
|
|
equals( $(element_id).value, values[element_id][0], values[element_id][1] );
|
|
}
|
|
}
|
|
} else if ( QUnit.config.current.module == "jquery" ) {
|
|
this.has_qr = function(selector) {
|
|
return $("#ljqrt"+this.links[selector].dtid).find("#qrdiv").length > 0;
|
|
};
|
|
this.get_qr_container = function(selector) {
|
|
return $("#ljqrt"+this.links[selector].dtid);
|
|
};
|
|
this.check_values = function(values) {
|
|
for( var element_id in values ) {
|
|
equals( $("#"+element_id).val(), values[element_id][0], values[element_id][1] );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module( "jquery", lifecycle );
|
|
test( "quickreply to entry", 25, function() {
|
|
ok( ! this.has_qr("replyto_entry_top"), "no qrdiv here yet" );
|
|
ok( ! this.get_qr_container("replyto_entry_top").is(":visible"), "qr container starts out invisible");
|
|
this.check_values({
|
|
subject : ["", "Empty subject"],
|
|
body : ["", "Empty body"],
|
|
parenttalkid: ["0", "No parent"],
|
|
dtid : ["", "No dtid"],
|
|
replyto : ["0", "No replyto"]
|
|
});
|
|
|
|
$("#replyto_entry_top").click();
|
|
ok( this.has_qr("replyto_entry_top"), "qrdiv shows up when clicking link to reply to entry (top)" );
|
|
ok( this.get_qr_container("replyto_entry_top").is(":visible"), "qr container becomes visible when we add qr to it");
|
|
$("#body").val("foo");
|
|
this.check_values({
|
|
subject : ["", "Empty subject"],
|
|
body : ["foo", "Contains body"],
|
|
parenttalkid: ["0", "No parent"],
|
|
dtid : ["topcomment", "No dtid"],
|
|
replyto : ["0", "No replyto"]
|
|
});
|
|
|
|
|
|
ok( ! this.has_qr("replyto_entry_bottom"), "no qrdiv here yet" );
|
|
ok( ! this.get_qr_container("replyto_entry_bottom").is(":visible"), "qr container starts out invisible");
|
|
|
|
$("#replyto_entry_bottom").click();
|
|
ok( this.has_qr("replyto_entry_bottom"), "qrdiv shows up after clicking link to reply to entry (bottom)" );
|
|
ok( this.get_qr_container("replyto_entry_bottom").is(":visible"), "qr container becomes visible when we add qr to it");
|
|
ok( ! this.has_qr("replyto_entry_top"), "previous qr container no longer has contains the qr" );
|
|
ok( ! this.get_qr_container("replyto_entry_top").is(":visible"), "previous qr container no longer visible");
|
|
this.check_values({
|
|
subject : ["", "Empty subject"],
|
|
body : ["foo", "Keep existing body"],
|
|
parenttalkid: ["0", "No parent"],
|
|
dtid : ["bottomcomment", "No dtid"],
|
|
replyto : ["0", "No replyto"]
|
|
});
|
|
});
|
|
|
|
test( "quickreply to comments", 25, function() {
|
|
ok( ! this.has_qr("existing_comment"), "no qrdiv here yet" );
|
|
ok( ! this.get_qr_container("existing_comment").is(":visible"), "qr container starts out invisible");
|
|
this.check_values({
|
|
subject : ["", "Empty subject"],
|
|
body : ["", "Empty body"],
|
|
parenttalkid: ["0", "No parent"],
|
|
dtid : ["", "No dtid"],
|
|
replyto : ["0", "No replyto"]
|
|
});
|
|
|
|
$("#existing_comment").click();
|
|
ok( this.has_qr("existing_comment"), "qrdiv shows up when clicking link to reply to existing toplevel comment" );
|
|
ok( this.get_qr_container("existing_comment").is(":visible"), "qr container becomes visible when we add qr to it");
|
|
$("#body").val("bar");
|
|
this.check_values({
|
|
subject : ["", "Empty subject"],
|
|
body : ["bar", "Contains body"],
|
|
parenttalkid: ["1", "Parent is existing comment"],
|
|
dtid : ["1", "Dtid is existing comment"],
|
|
replyto : ["1", "Replyto is existing comment"]
|
|
});
|
|
|
|
|
|
ok( ! this.has_qr("child_of_existing_comment"), "no qrdiv here yet" );
|
|
ok( ! this.get_qr_container("child_of_existing_comment").is(":visible"), "qr container starts out invisible");
|
|
|
|
$("#child_of_existing_comment").click();
|
|
ok( this.has_qr("child_of_existing_comment"), "qrdiv shows up after clicking link to reply to existing second-level comment" );
|
|
ok( this.get_qr_container("child_of_existing_comment").is(":visible"), "qr container becomes visible when we add qr to it");
|
|
ok( ! this.has_qr("existing_comment"), "previous qr container no longer has contains the qr" );
|
|
ok( ! this.get_qr_container("existing_comment").is(":visible"), "previous qr container no longer visible");
|
|
this.check_values({
|
|
subject : ["", "Empty subject"],
|
|
body : ["bar", "Keep existing body"],
|
|
parenttalkid: ["2", "Parent is existing secondlevel comment"],
|
|
dtid : ["2", "Dtid is existing secondlevel comment"],
|
|
replyto : ["2", "Replyto is existing secondlevel comment"]
|
|
});
|
|
});
|
|
|
|
test( "reply to comment which has subject", 17, function() {
|
|
$("#existing_comment").click();
|
|
ok( this.has_qr("existing_comment"), "reply to existing_comment" );
|
|
this.check_values({
|
|
subject : ["", "Empty subject"],
|
|
body : ["", "Empty body"],
|
|
});
|
|
|
|
$("#hassubject").click();
|
|
ok( this.has_qr("hassubject"), "reply to comment which has a subject" );
|
|
$("#body").val("whee");
|
|
this.check_values({
|
|
subject : ["Re: has subject", "Use existing comment subject"],
|
|
body : ["whee", "Contains body"],
|
|
});
|
|
|
|
$("#existing_comment").click();
|
|
ok( this.has_qr("existing_comment"), "reply to existing_comment again" );
|
|
this.check_values({
|
|
subject : ["", "Clear comment subject if it matches previous / hasn't been customized"],
|
|
body : ["whee", "Keep old body"],
|
|
});
|
|
|
|
|
|
$("#subject").val("some custom subject");
|
|
this.check_values({
|
|
subject : ["some custom subject", "Using custom subject"],
|
|
body : ["whee", "Contains body"],
|
|
});
|
|
|
|
|
|
$("#hassubject").click();
|
|
ok( this.has_qr("hassubject"), "reply to something with a subject again, but this time with a custom subject" );
|
|
this.check_values({
|
|
subject : ["some custom subject", "Custom subject overrides original comment subject"],
|
|
body : ["whee", "Contains body"],
|
|
});
|
|
|
|
$("#existing_comment").click();
|
|
ok( this.has_qr("existing_comment"), "switch back to existing_comment" );
|
|
this.check_values({
|
|
subject : ["some custom subject", "Still using custom subject"],
|
|
body : ["whee", "Keep old body"],
|
|
});
|
|
|
|
});
|
|
|
|
test( "class names", 1, function() {
|
|
$("#hasclass").click();
|
|
// not the same as in old style; this puts #qrformdiv within .container_class
|
|
ok( $(".container_class").find("#qrformdiv").length == 1, "#qrdiv is contained within quick reply container which has a class");
|
|
});
|
|
|
|
test( "submit post", 0, function() {
|
|
// FIXME: add test
|
|
});
|
|
test( "submit preview", 0, function() {
|
|
// FIXME: add test
|
|
});
|
|
test( "submit more options", 0, function() {
|
|
// FIXME: add test
|
|
});
|