Bug 490310
diff --git a/plugins/org.eclipse.actf.visualization.eval/src/org/eclipse/actf/visualization/eval/html/HtmlEvalUtil.java b/plugins/org.eclipse.actf.visualization.eval/src/org/eclipse/actf/visualization/eval/html/HtmlEvalUtil.java
index fad0191..daa8047 100644
--- a/plugins/org.eclipse.actf.visualization.eval/src/org/eclipse/actf/visualization/eval/html/HtmlEvalUtil.java
+++ b/plugins/org.eclipse.actf.visualization.eval/src/org/eclipse/actf/visualization/eval/html/HtmlEvalUtil.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and Others
+ * Copyright (c) 2005, 2016 IBM Corporation and Others
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -42,35 +42,27 @@
private static final boolean PERFORMANCE_DEBUG = false;
- private static final int LONG_TEXT_NUM = 200; // TODO check
+ private static final int LONG_TEXT_NUM = 250; // TODO check
- private static final String[] HEADING_LEVEL = {
- "h1", "h2", "h3", "h4", "h5", "h6" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+ private static final String[] HEADING_LEVEL = { "h1", "h2", "h3", "h4", "h5", "h6" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- public static final String[] EVENT_MOUSE_BUTTON = { ATTR_ONCLICK,
- ATTR_ONDBLCLICK, ATTR_ONMOUSEUP, ATTR_ONMOUSEDOWN };
+ public static final String[] EVENT_MOUSE_BUTTON = { ATTR_ONCLICK, ATTR_ONDBLCLICK, ATTR_ONMOUSEUP,
+ ATTR_ONMOUSEDOWN };
- public static final String[] EVENT_MOUSE_FOCUS = { ATTR_ONMOUSEOVER,
- ATTR_ONMOUSEOUT, ATTR_ONMOUSEMOVE };
+ public static final String[] EVENT_MOUSE_FOCUS = { ATTR_ONMOUSEOVER, ATTR_ONMOUSEOUT, ATTR_ONMOUSEMOVE };
- public static final String[] EVENT_ON_KEY = { ATTR_ONKEYDOWN,
- ATTR_ONKEYPRESS, ATTR_ONKEYUP };
+ public static final String[] EVENT_ON_KEY = { ATTR_ONKEYDOWN, ATTR_ONKEYPRESS, ATTR_ONKEYUP };
- public static final String[] EVENT_LOAD = { ATTR_ONLOAD, ATTR_ONUNLOAD,
- ATTR_ONABORT, ATTR_ONERROR };
+ public static final String[] EVENT_LOAD = { ATTR_ONLOAD, ATTR_ONUNLOAD, ATTR_ONABORT, ATTR_ONERROR };
- public static final String[] EVENT_WINDOW = { ATTR_ONRESIZE, ATTR_ONMOVE,
- ATTR_ONDRAGDROP };
+ public static final String[] EVENT_WINDOW = { ATTR_ONRESIZE, ATTR_ONMOVE, ATTR_ONDRAGDROP };
- public static final String[] EVENT_FOCUS = { ATTR_ONFOCUS, ATTR_ONBLUR,
- ATTR_ONSELECT };
+ public static final String[] EVENT_FOCUS = { ATTR_ONFOCUS, ATTR_ONBLUR, ATTR_ONSELECT };
- private static final XPathService xpathService = XPathServiceFactory
- .newService();
+ private static final XPathService xpathService = XPathServiceFactory.newService();
private static final Object EXP1 = xpathService.compile(".//a[@href]"); //$NON-NLS-1$
- private static final Object EXP2 = xpathService
- .compile("//h1|//h2|//h3|//h4|//h5|//h6"); //$NON-NLS-1$
+ private static final Object EXP2 = xpathService.compile("//h1|//h2|//h3|//h4|//h5|//h6"); //$NON-NLS-1$
private Document target;
@@ -196,11 +188,9 @@
* @param isLive
* true if target is live DOM
*/
- public HtmlEvalUtil(Document target, Document resultDoc, String url,
- Map<Node, Integer> document2IdMap, Document srcDom,
- Document liveDom, PageData pageData, boolean isDBCS, boolean isLive) {
- this(target, resultDoc, url, document2IdMap, srcDom, liveDom, pageData,
- 0, null, isDBCS, isLive);
+ public HtmlEvalUtil(Document target, Document resultDoc, String url, Map<Node, Integer> document2IdMap,
+ Document srcDom, Document liveDom, PageData pageData, boolean isDBCS, boolean isLive) {
+ this(target, resultDoc, url, document2IdMap, srcDom, liveDom, pageData, 0, null, isDBCS, isLive);
}
/**
@@ -230,9 +220,8 @@
* true if target is live DOM
*/
@SuppressWarnings("nls")
- private HtmlEvalUtil(Document target, Document resultDoc, String url,
- Map<Node, Integer> document2IdMap, Document srcDom,
- Document liveDom, PageData pageData, int invisibleElementCount,
+ private HtmlEvalUtil(Document target, Document resultDoc, String url, Map<Node, Integer> document2IdMap,
+ Document srcDom, Document liveDom, PageData pageData, int invisibleElementCount,
String[] invisibleLinkStrings, boolean isDBCS, boolean isLive) {
this.target = target;
this.resultDoc = resultDoc;
@@ -363,12 +352,10 @@
object_elements = new Element[length];
for (int i = 0; i < length; i++) {
object_elements[i] = (Element) tmpNL.item(i);
- if (FLASH_OBJECT.equalsIgnoreCase(object_elements[i]
- .getAttribute("classid"))) {
+ if (FLASH_OBJECT.equalsIgnoreCase(object_elements[i].getAttribute("classid"))) {
// TODO check codebase
// TODO get width hight align ... loop quality...
- NodeList paramNL = object_elements[i]
- .getElementsByTagName("param");
+ NodeList paramNL = object_elements[i].getElementsByTagName("param");
String src = "";
for (int j = 0; j < paramNL.getLength(); j++) {
try {
@@ -383,16 +370,13 @@
}
}
if (src != null && src.length() > 0) {
- FlashData flashD = new FlashData(object_elements[i], src,
- true);
+ FlashData flashD = new FlashData(object_elements[i], src, true);
pageData.addFlashData(flashD);
- NodeList embedNL = object_elements[i]
- .getElementsByTagName("embed");
+ NodeList embedNL = object_elements[i].getElementsByTagName("embed");
for (int j = 0; j < embedNL.getLength(); j++) {
Element tmpE = (Element) embedNL.item(j);
- if (FLASH_TYPE.equalsIgnoreCase(tmpE
- .getAttribute("type"))) {
+ if (FLASH_TYPE.equalsIgnoreCase(tmpE.getAttribute("type"))) {
// TODO check PLUGINSPAGE
// TODO get width hight align ... loop quality...
@@ -402,8 +386,7 @@
embedInObjectSet.add(tmpE);
flashD.setWithEmbed(true);
} else {
- pageData.addFlashData(new FlashData(tmpE,
- src, false));
+ pageData.addFlashData(new FlashData(tmpE, src, false));
}
}
}
@@ -417,8 +400,7 @@
embed_elements = getElementsArray(target, "embed");
for (int i = 0; i < embed_elements.length; i++) {
Element tmpE = embed_elements[i];
- if (!embedInObjectSet.contains(tmpE)
- && FLASH_TYPE.equals(tmpE.getAttribute("type"))) {
+ if (!embedInObjectSet.contains(tmpE) && FLASH_TYPE.equals(tmpE.getAttribute("type"))) {
// TODO check PLUGINSPAGE
// TODO get width hight align ... loop quality...
String src = tmpE.getAttribute("src");
@@ -447,8 +429,7 @@
collectScriptElements();
if (PERFORMANCE_DEBUG)
- System.out.println("collectScriptElements\t"
- + (new Date()).getTime());
+ System.out.println("collectScriptElements\t" + (new Date()).getTime());
/*
* calcDomDifference(); if (PERFORMANCE_DEBUG)
* System.out.println("calcDomDifference\t" + (new Date()).getTime());
@@ -479,8 +460,7 @@
* of the node.
*/
// for new JIS
- public List<Element> getElementsList(Node node, String tagName,
- String... tagNames) {
+ public List<Element> getElementsList(Node node, String tagName, String... tagNames) {
List<Element> nodes = new ArrayList<Element>();
NodeList nl = null;
if (node instanceof Document)
@@ -526,8 +506,7 @@
private void collectScriptElements() {
script_elements = getElementsArray(target, "script");
- javascript_elements = getElementsArrayByXPath(target,
- "//script[@type=\"text/javascript\"]");
+ javascript_elements = getElementsArrayByXPath(target, "//script[@type=\"text/javascript\"]");
// allEventElements = getElementsArrayByXPath(
// target,
@@ -539,16 +518,11 @@
eventMouseButtonElements = getElementsArrayByXPath(target,
"//*[@onclick or @ondblclick or @onmouseup or @onmousedown]");
- eventMouseFocusElements = getElementsArrayByXPath(target,
- "//*[@onmouseover or @onmouseout or @onmousemove]");
- eventOnKeyElements = getElementsArrayByXPath(target,
- "//*[@onkeydown or @onkeyup or @onkeypress]");
- eventLoadElements = getElementsArrayByXPath(target,
- "//*[@onload or @onunload or @onabort or @onerror]");
- eventWindowElements = getElementsArrayByXPath(target,
- "//*[@onresize or @onmove or @ondragdrop]");
- eventFocusElements = getElementsArrayByXPath(target,
- "//*[@onfocus or @onblur or @onselect]");
+ eventMouseFocusElements = getElementsArrayByXPath(target, "//*[@onmouseover or @onmouseout or @onmousemove]");
+ eventOnKeyElements = getElementsArrayByXPath(target, "//*[@onkeydown or @onkeyup or @onkeypress]");
+ eventLoadElements = getElementsArrayByXPath(target, "//*[@onload or @onunload or @onabort or @onerror]");
+ eventWindowElements = getElementsArrayByXPath(target, "//*[@onresize or @onmove or @ondragdrop]");
+ eventFocusElements = getElementsArrayByXPath(target, "//*[@onfocus or @onblur or @onselect]");
Vector<Element> tmpV1 = new Vector<Element>();
Vector<String> tmpV2 = new Vector<String>();
@@ -569,10 +543,8 @@
tmpV2.toArray(javascriptHref_hrefs);
tmpV3.toArray(javascriptHref_strings);
- int javascriptNum = javascript_elements.length
- + eventFocusElements.length + eventLoadElements.length
- + eventMouseButtonElements.length
- + eventMouseFocusElements.length + eventOnKeyElements.length
+ int javascriptNum = javascript_elements.length + eventFocusElements.length + eventLoadElements.length
+ + eventMouseButtonElements.length + eventMouseFocusElements.length + eventOnKeyElements.length
+ eventWindowElements.length + javascriptHref_hrefs.length;
hasJavascript = (javascriptNum > 0);
@@ -653,10 +625,8 @@
boolean bMultiCol = false;
int length = cellNl.getLength();
for (int i = 0; i < length; i++) {
- NodeList thNl = ((Element) cellNl.item(i))
- .getElementsByTagName("th"); //$NON-NLS-1$
- NodeList tdNl = ((Element) cellNl.item(i))
- .getElementsByTagName("td"); //$NON-NLS-1$
+ NodeList thNl = ((Element) cellNl.item(i)).getElementsByTagName("th"); //$NON-NLS-1$
+ NodeList tdNl = ((Element) cellNl.item(i)).getElementsByTagName("td"); //$NON-NLS-1$
if ((thNl.getLength() + tdNl.getLength()) > 1) {
bMultiCol = true;
break;
@@ -730,10 +700,14 @@
if (getTextAltDescendant(el).length() > LONG_TEXT_NUM) {
return false;
}
- NodeList aNl = el.getElementsByTagName("a"); //$NON-NLS-1$
- NodeList liNl = el.getElementsByTagName("li"); //$NON-NLS-1$
+ // NodeList aNl = el.getElementsByTagName("a"); //$NON-NLS-1$
+ // NodeList liNl = el.getElementsByTagName("li"); //$NON-NLS-1$
+ // NodeList imgNl = el.getElementsByTagName("img"); //$NON-NLS-1$
+ // if ((aNl.getLength() + liNl.getLength() + imgNl.getLength()) > 3) {
+ // return false;
+ // }
NodeList imgNl = el.getElementsByTagName("img"); //$NON-NLS-1$
- if ((aNl.getLength() + liNl.getLength() + imgNl.getLength()) > 3) {
+ if (imgNl.getLength() > 10) {
return false;
}
@@ -791,8 +765,7 @@
}
return idElementList;
}
-
-
+
/**
* Get all style elements.
*
@@ -1339,8 +1312,7 @@
if (tmpE != null && "area".equalsIgnoreCase(tmpE.getTagName())) {
tmpE = resultDoc.getElementById("id" + id + "-span");
}
- if (tmpE != null
- && tmpE.getElementsByTagName("img").getLength() == 0) {
+ if (tmpE != null && tmpE.getElementsByTagName("img").getLength() == 0) {
Element errorImg = resultDoc.createElement("img");
errorImg.setAttribute(ATTR_ALT, "error icon");
errorImg.setAttribute(ATTR_SRC, "img/exclawhite21.gif");
@@ -1359,11 +1331,9 @@
comment_sb.append(comment.charAt(x));
}
- String tmpS = comment_sb.toString().replaceAll("\n", "")
- .replaceAll("\r", "");
+ String tmpS = comment_sb.toString().replaceAll("\n", "").replaceAll("\r", "");
- errorImg.setAttribute("onmouseover", "updateBaloon2(\"id" + id
- + "\",\"" + tmpS + "\");");
+ errorImg.setAttribute("onmouseover", "updateBaloon2(\"id" + id + "\",\"" + tmpS + "\");");
tmpE.appendChild(errorImg);
return true;
} else {