Skip to content

Commit 2d1af5f

Browse files
committed
two more tests
1 parent 31d5937 commit 2d1af5f

File tree

2 files changed

+129
-13
lines changed

2 files changed

+129
-13
lines changed

src/main/java/org/htmlunit/javascript/host/dom/Node.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,10 @@ public boolean isEqualNode(final Node other) {
497497
return true;
498498
}
499499

500+
if (other == null) {
501+
return false;
502+
}
503+
500504
if (!getClassName().equals(other.getClassName())) {
501505
return false;
502506
}
@@ -586,7 +590,7 @@ else if (this instanceof Text || this instanceof Comment) {
586590
}
587591

588592
final int length = childNodes.getLength();
589-
final int otherLength = childNodes.getLength();
593+
final int otherLength = otherChildNodes.getLength();
590594
if (length != otherLength) {
591595
return false;
592596
}
@@ -616,7 +620,7 @@ else if (this instanceof Text || this instanceof Comment) {
616620
*/
617621
@JsxFunction
618622
public boolean isSameNode(final Object other) {
619-
return other == this;
623+
return this == other;
620624
}
621625

622626
/**

src/test/java/org/htmlunit/javascript/host/dom/NodeTest.java

Lines changed: 123 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -374,38 +374,150 @@ public void attachEvent() throws Exception {
374374
verifyTitle2(driver, getExpectedAlerts());
375375
}
376376

377+
377378
/**
378379
* @throws Exception if the test fails
379380
*/
380381
@Test
381-
@Alerts({"false", "false", "true", "false", "false", "false"})
382-
public void isEqualNode() throws Exception {
382+
@Alerts("true")
383+
public void isEqualNodeSame() throws Exception {
383384
final String html = DOCTYPE_HTML
384385
+ "<html><head><script>\n"
385386
+ LOG_TITLE_FUNCTION
386387
+ " function test() {\n"
387388
+ " var list1 = document.getElementById('list1');\n"
388-
+ " var list2 = document.getElementById('list2');\n"
389-
+ " log(list1.isEqualNode(list2));\n"
389+
+ " log(list1.isEqualNode(list1));\n"
390390
+ "\n"
391-
+ " var nodes = document.getElementsByClassName('test');\n"
392-
+ " log(nodes[0].isEqualNode(nodes[1]));\n"
393-
+ " log(nodes[0].isEqualNode(nodes[2]));\n"
394-
+ " log(nodes[0].isEqualNode(nodes[3]));\n"
395-
+ " log(nodes[0].isEqualNode(nodes[4]));\n"
396-
+ " log(nodes[0].isEqualNode(nodes[5]));"
397391
+ " }\n"
398392
+ "</script></head>\n"
399393
+ "<body onload='test()'>\n"
400394
+ " <ul id='list1'>\n"
401395
+ " <li>foo</li>\n"
402396
+ " <li>bar</li>\n"
403397
+ " </ul>\n"
398+
+ "</body></html>";
399+
loadPageVerifyTitle2(html);
400+
}
401+
402+
/**
403+
* @throws Exception if the test fails
404+
*/
405+
@Test
406+
@Alerts({"false", "false"})
407+
public void isEqualNodeNull() throws Exception {
408+
final String html = DOCTYPE_HTML
409+
+ "<html><head><script>\n"
410+
+ LOG_TITLE_FUNCTION
411+
+ " function test() {\n"
412+
+ " var list1 = document.getElementById('list1');\n"
413+
+ " log(list1.isEqualNode(null));\n"
414+
+ " log(list1.isEqualNode(undefined));\n"
415+
+ " }\n"
416+
+ "</script></head>\n"
417+
+ "<body onload='test()'>\n"
418+
+ " <ul id='list1'>\n"
419+
+ " <li>foo</li>\n"
420+
+ " <li>bar</li>\n"
421+
+ " </ul>\n"
422+
+ "</body></html>";
423+
loadPageVerifyTitle2(html);
424+
}
425+
426+
/**
427+
* @throws Exception if the test fails
428+
*/
429+
@Test
430+
@Alerts({"true", "true", "false", "true", "true", "false", "false", "false", "true"})
431+
public void isEqualNodeEmpty() throws Exception {
432+
final String html = DOCTYPE_HTML
433+
+ "<html><head><script>\n"
434+
+ LOG_TITLE_FUNCTION
435+
+ " function test() {\n"
436+
+ " var list1 = document.getElementById('list1');\n"
437+
+ " var list1 = document.getElementById('list2');\n"
438+
439+
+ " log(list1.isEqualNode(list1));\n"
440+
+ " log(list1.isEqualNode(list2));\n"
441+
+ " log(list1.isEqualNode(list3));\n"
442+
443+
+ " log(list2.isEqualNode(list1));\n"
444+
+ " log(list2.isEqualNode(list2));\n"
445+
+ " log(list2.isEqualNode(list3));\n"
446+
447+
+ " log(list3.isEqualNode(list1));\n"
448+
+ " log(list3.isEqualNode(list2));\n"
449+
+ " log(list3.isEqualNode(list3));\n"
450+
+ " }\n"
451+
+ "</script></head>\n"
452+
+ "<body onload='test()'>\n"
453+
+ " <ul id='list1'>\n"
454+
+ " </ul>\n"
404455
+ " <ul id='list2'>\n"
456+
+ " </ul>\n"
457+
+ " <ul id='list3'>\n"
405458
+ " <li>foo</li>\n"
406459
+ " <li>bar</li>\n"
407460
+ " </ul>\n"
408-
+ "\n"
461+
+ "</body></html>";
462+
loadPageVerifyTitle2(html);
463+
}
464+
465+
/**
466+
* @throws Exception if the test fails
467+
*/
468+
@Test
469+
@Alerts({"6", "false", "true", "false", "false", "false",
470+
"true", "false", "false", "false", "false",
471+
"false", "true", "false", "false", "false",
472+
"false", "false", "true", "false", "false",
473+
"false", "false", "false", "true", "false",
474+
"false", "false", "false", "false", "true"})
475+
public void isEqualNodeAttr() throws Exception {
476+
final String html = DOCTYPE_HTML
477+
+ "<html><head><script>\n"
478+
+ LOG_TITLE_FUNCTION
479+
+ " function test() {\n"
480+
+ " var nodes = document.getElementsByClassName('test');\n"
481+
+ " log(nodes.length);\n"
482+
483+
+ " log(nodes[0].isEqualNode(nodes[1]));\n"
484+
+ " log(nodes[0].isEqualNode(nodes[2]));\n"
485+
+ " log(nodes[0].isEqualNode(nodes[3]));\n"
486+
+ " log(nodes[0].isEqualNode(nodes[4]));\n"
487+
+ " log(nodes[0].isEqualNode(nodes[5]));\n"
488+
489+
+ " log(nodes[1].isEqualNode(nodes[1]));\n"
490+
+ " log(nodes[1].isEqualNode(nodes[2]));\n"
491+
+ " log(nodes[1].isEqualNode(nodes[3]));\n"
492+
+ " log(nodes[1].isEqualNode(nodes[4]));\n"
493+
+ " log(nodes[1].isEqualNode(nodes[5]));\n"
494+
495+
+ " log(nodes[2].isEqualNode(nodes[1]));\n"
496+
+ " log(nodes[2].isEqualNode(nodes[2]));\n"
497+
+ " log(nodes[2].isEqualNode(nodes[3]));\n"
498+
+ " log(nodes[2].isEqualNode(nodes[4]));\n"
499+
+ " log(nodes[2].isEqualNode(nodes[5]));\n"
500+
501+
+ " log(nodes[3].isEqualNode(nodes[1]));\n"
502+
+ " log(nodes[3].isEqualNode(nodes[2]));\n"
503+
+ " log(nodes[3].isEqualNode(nodes[3]));\n"
504+
+ " log(nodes[3].isEqualNode(nodes[4]));\n"
505+
+ " log(nodes[3].isEqualNode(nodes[5]));\n"
506+
507+
+ " log(nodes[4].isEqualNode(nodes[1]));\n"
508+
+ " log(nodes[4].isEqualNode(nodes[2]));\n"
509+
+ " log(nodes[4].isEqualNode(nodes[3]));\n"
510+
+ " log(nodes[4].isEqualNode(nodes[4]));\n"
511+
+ " log(nodes[4].isEqualNode(nodes[5]));\n"
512+
513+
+ " log(nodes[5].isEqualNode(nodes[1]));\n"
514+
+ " log(nodes[5].isEqualNode(nodes[2]));\n"
515+
+ " log(nodes[5].isEqualNode(nodes[3]));\n"
516+
+ " log(nodes[5].isEqualNode(nodes[4]));\n"
517+
+ " log(nodes[5].isEqualNode(nodes[5]));\n"
518+
+ " }\n"
519+
+ "</script></head>\n"
520+
+ "<body onload='test()'>\n"
409521
+ " <ul class='test'>\n"
410522
+ " <li>foo</li>\n"
411523
+ " <li>bar</li>\n"

0 commit comments

Comments
 (0)