Commit 514071c329d8607c5f24b90b7f962a809e5672d4

Authored by gibran
1 parent b8325d32

Correção do método para verificar a luminosidade.

src/main/java/br/com/checker/emag/core/PresentationEvaluation.java
@@ -16,6 +16,8 @@ import javax.swing.text.html.HTML; @@ -16,6 +16,8 @@ import javax.swing.text.html.HTML;
16 16
17 import org.hamcrest.core.IsNull; 17 import org.hamcrest.core.IsNull;
18 18
  19 +import sun.misc.FpUtils;
  20 +
19 import com.oracle.webservices.internal.api.EnvelopeStyle.Style; 21 import com.oracle.webservices.internal.api.EnvelopeStyle.Style;
20 22
21 import net.htmlparser.jericho.Attribute; 23 import net.htmlparser.jericho.Attribute;
@@ -113,7 +115,8 @@ public class PresentationEvaluation extends Evaluation{ @@ -113,7 +115,8 @@ public class PresentationEvaluation extends Evaluation{
113 115
114 Color corAvaliar = null; 116 Color corAvaliar = null;
115 Color foreground = null; 117 Color foreground = null;
116 - Color background = null; 118 + Color background = null;
  119 + Color backgroundDoBody = null;
117 boolean achou_foreground = false; 120 boolean achou_foreground = false;
118 boolean achou_background = false; 121 boolean achou_background = false;
119 String styleInline = ""; 122 String styleInline = "";
@@ -128,20 +131,19 @@ public class PresentationEvaluation extends Evaluation{ @@ -128,20 +131,19 @@ public class PresentationEvaluation extends Evaluation{
128 for (Element estilo : head.getAllElements("style")) { 131 for (Element estilo : head.getAllElements("style")) {
129 lsCssInterno.add(estilo); 132 lsCssInterno.add(estilo);
130 } 133 }
131 - } 134 + }
132 135
133 -  
134 //Pega todos elementos do "body" 136 //Pega todos elementos do "body"
135 for (Element body : getDocument().getAllElements("body")) { 137 for (Element body : getDocument().getAllElements("body")) {
136 for (Element element : body.getAllElements()) { 138 for (Element element : body.getAllElements()) {
137 139
138 //verificar se o "body" possui o atributo "bgcolor" 140 //verificar se o "body" possui o atributo "bgcolor"
139 if(element.getStartTag().getName().equalsIgnoreCase("body")) 141 if(element.getStartTag().getName().equalsIgnoreCase("body"))
140 - { 142 + {
141 if(element.toString().contains("bgcolor")) 143 if(element.toString().contains("bgcolor"))
142 { 144 {
143 try { 145 try {
144 - corAvaliar = new Color(Integer.parseInt(element.getAttributeValue("bgcolor").trim().replaceFirst("#",""), 16)); 146 + corAvaliar = new Color(Integer.parseInt(element.getStartTag().getAttributeValue("bgcolor").trim().replaceFirst("#",""), 16));
145 if(corAvaliar != null) 147 if(corAvaliar != null)
146 { 148 {
147 background = corAvaliar; 149 background = corAvaliar;
@@ -153,7 +155,7 @@ public class PresentationEvaluation extends Evaluation{ @@ -153,7 +155,7 @@ public class PresentationEvaluation extends Evaluation{
153 } 155 }
154 156
155 //Primeiro verificar se tem css in-line 157 //Primeiro verificar se tem css in-line
156 - styleInline = element.getAttributeValue("style"); 158 + styleInline = element.getStartTag().getAttributeValue("style");
157 if(styleInline != null){ 159 if(styleInline != null){
158 160
159 161
@@ -196,8 +198,21 @@ public class PresentationEvaluation extends Evaluation{ @@ -196,8 +198,21 @@ public class PresentationEvaluation extends Evaluation{
196 background = corAvaliar; 198 background = corAvaliar;
197 } 199 }
198 200
199 - if(foreground != null) achou_foreground = true;  
200 - if(background != null) achou_background = true; 201 + if(foreground != null)
  202 + {
  203 + achou_foreground = true;
  204 + }
  205 +
  206 + if(background != null) {
  207 + achou_background = true;
  208 +
  209 + if(element.getStartTag().getName().equalsIgnoreCase("body"))
  210 + {
  211 + backgroundDoBody = background;
  212 + }
  213 + }
  214 +
  215 +
201 216
202 }else 217 }else
203 { 218 {
@@ -290,21 +305,25 @@ public class PresentationEvaluation extends Evaluation{ @@ -290,21 +305,25 @@ public class PresentationEvaluation extends Evaluation{
290 } 305 }
291 306
292 if(foreground != null) 307 if(foreground != null)
293 - {  
294 - achou_foreground = true;  
295 - } 308 + {
  309 + achou_foreground = true;
  310 + }
  311 +
  312 + if(background != null) {
  313 + achou_background = true;
296 314
297 - if(background != null) 315 + if(element.getStartTag().getName().equalsIgnoreCase("body"))
298 { 316 {
299 - achou_background = true;  
300 - } 317 + backgroundDoBody = background;
  318 + }
  319 + }
301 320
302 if(achou_foreground || achou_background) 321 if(achou_foreground || achou_background)
303 { 322 {
304 break; 323 break;
305 } 324 }
306 325
307 - } 326 + }
308 327
309 328
310 corAvaliar = null; 329 corAvaliar = null;
@@ -322,7 +341,7 @@ public class PresentationEvaluation extends Evaluation{ @@ -322,7 +341,7 @@ public class PresentationEvaluation extends Evaluation{
322 for (String style : lsCssExterno) { 341 for (String style : lsCssExterno) {
323 342
324 343
325 - if(element.getAttributeValue("id") != null || element.getAttributeValue("class") != null) 344 + if(element.getStartTag().getAttributeValue("id") != null || element.getStartTag().getAttributeValue("class") != null)
326 { 345 {
327 //Coloca todo css em apenas uma linha, depois separa por blocos 346 //Coloca todo css em apenas uma linha, depois separa por blocos
328 String texto = style.toString().replace("\n",""); 347 String texto = style.toString().replace("\n","");
@@ -402,14 +421,18 @@ public class PresentationEvaluation extends Evaluation{ @@ -402,14 +421,18 @@ public class PresentationEvaluation extends Evaluation{
402 } 421 }
403 422
404 if(foreground != null) 423 if(foreground != null)
405 - {  
406 - achou_foreground = true;  
407 - } 424 + {
  425 + achou_foreground = true;
  426 + }
  427 +
  428 + if(background != null) {
  429 + achou_background = true;
408 430
409 - if(background != null) 431 + if(element.getStartTag().getName().equalsIgnoreCase("body"))
410 { 432 {
411 - achou_background = true;  
412 - } 433 + backgroundDoBody = background;
  434 + }
  435 + }
413 436
414 if(achou_foreground || achou_background) 437 if(achou_foreground || achou_background)
415 { 438 {
@@ -441,13 +464,26 @@ public class PresentationEvaluation extends Evaluation{ @@ -441,13 +464,26 @@ public class PresentationEvaluation extends Evaluation{
441 avaliadorContraste.avaliar(); 464 avaliadorContraste.avaliar();
442 465
443 if(avaliadorContraste.getContraste() < new Double("4.5")){ 466 if(avaliadorContraste.getContraste() < new Double("4.5")){
444 - occurrences.add(buildOccurrence("4.1", false, element.toString(), element,"2")); 467 + occurrences.add(buildOccurrence("4.1", false, element.getStartTag().toString(), element,"2"));
445 468
446 } 469 }
447 achou_foreground = false; 470 achou_foreground = false;
448 achou_background = false; 471 achou_background = false;
449 472
450 - } 473 + }//Caso não ache o background, usará o padrão encontrado no body
  474 + else if (achou_foreground == true && achou_background == false && backgroundDoBody != null)
  475 + {
  476 + avaliadorContraste.setCores(foreground, backgroundDoBody);
  477 + avaliadorContraste.avaliar();
  478 +
  479 + if(avaliadorContraste.getContraste() < new Double("4.5")){
  480 + occurrences.add(buildOccurrence("4.1", false, element.getStartTag().toString(), element,"2"));
  481 +
  482 + }
  483 + achou_foreground = false;
  484 + achou_background = false;
  485 + }//Caso não ache o foreground, usará o padrão encontrado no body
  486 +
451 487
452 //Caso seja encontrado um "foreground" e não "background" e vice-versa, será adicionado um aviso para que seja avaliado manualmente 488 //Caso seja encontrado um "foreground" e não "background" e vice-versa, será adicionado um aviso para que seja avaliado manualmente
453 /*if((achou_foreground== true && achou_background == false) || (achou_foreground== false && achou_background == true)){ 489 /*if((achou_foreground== true && achou_background == false) || (achou_foreground== false && achou_background == true)){
@@ -501,9 +537,9 @@ public class PresentationEvaluation extends Evaluation{ @@ -501,9 +537,9 @@ public class PresentationEvaluation extends Evaluation{
501 537
502 Color color = null; 538 Color color = null;
503 539
504 - Pattern value = Pattern.compile(pattern);  
505 -  
506 - Matcher match = value.matcher(css.replace(";", "\n").replace("}", "").replace("!important", "")); 540 + Pattern value = Pattern.compile("\\s" + pattern);
  541 + String cssModificado = css.replace(";", ";\n").replace("}", "").replace("!important", "");
  542 + Matcher match = value.matcher(cssModificado);
507 while (match.find()){ 543 while (match.find()){
508 String cor = match.group(1); 544 String cor = match.group(1);
509 545