You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2013/01/18 05:06:22 UTC
svn commit: r1435020 -
/flex/sdk/branches/develop/mustella/as3/src/mustella/CompareBitmap.as
Author: aharui
Date: Fri Jan 18 04:06:22 2013
New Revision: 1435020
URL: http://svn.apache.org/viewvc?rev=1435020&view=rev
Log:
display list compare should ignore line endings
Modified:
flex/sdk/branches/develop/mustella/as3/src/mustella/CompareBitmap.as
Modified: flex/sdk/branches/develop/mustella/as3/src/mustella/CompareBitmap.as
URL: http://svn.apache.org/viewvc/flex/sdk/branches/develop/mustella/as3/src/mustella/CompareBitmap.as?rev=1435020&r1=1435019&r2=1435020&view=diff
==============================================================================
--- flex/sdk/branches/develop/mustella/as3/src/mustella/CompareBitmap.as (original)
+++ flex/sdk/branches/develop/mustella/as3/src/mustella/CompareBitmap.as Fri Jan 18 04:06:22 2013
@@ -18,17 +18,29 @@
////////////////////////////////////////////////////////////////////////////////
package {
+import flash.display.BitmapData;
+import flash.display.DisplayObject;
+import flash.display.DisplayObjectContainer;
import flash.display.IBitmapDrawable;
-import flash.utils.*;
-import flash.net.*;
-import flash.events.*;
-import flash.display.*;
-import flash.text.*;
-import flash.text.engine.*;
+import flash.display.Loader;
+import flash.events.Event;
+import flash.events.IOErrorEvent;
+import flash.events.SecurityErrorEvent;
+import flash.events.StatusEvent;
import flash.geom.ColorTransform;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.geom.Rectangle;
+import flash.net.LocalConnection;
+import flash.net.URLLoader;
+import flash.net.URLRequest;
+import flash.text.TextField;
+import flash.text.engine.ContentElement;
+import flash.text.engine.TextBlock;
+import flash.text.engine.TextLine;
+import flash.utils.ByteArray;
+import flash.utils.getQualifiedClassName;
+
import mx.core.IChildList;
import mx.core.IRawChildrenContainer;
import mx.core.mx_internal;
@@ -440,8 +452,13 @@ public class CompareBitmap extends Asser
{
var actualTarget:DisplayObject = DisplayObject(context.stringToObject(target));
var s:String = getDisplayListXML(actualTarget).toXMLString();
- if (s !== xmlreader.data)
+ var t:String = xmlreader.data;
+ s = s.replace(/\r/g, "");
+ t = t.replace(/\r/g, "");
+ if (s !== t)
{
+ differ(s, t);
+
testResult.doFail ("compare returned" + compareVal, absolutePathResult(url) + ".bad.png");
if (useRemoteDiffer)
@@ -1179,8 +1196,8 @@ public class CompareBitmap extends Asser
// scan entire display list, but only dump objects intersecting target
protected function getDisplayListXML(target:DisplayObject):XML
{
- var n:int;
var i:int;
+ var n:int;
var child:DisplayObject;
var childXML:XML;
@@ -1215,6 +1232,34 @@ public class CompareBitmap extends Asser
}
return xml;
}
+
+ private function differ(s:String, t:String):void
+ {
+ var sl:Array = s.split("\n");
+ var tl:Array = t.split("\n");
+ trace(sl.length, tl.length);
+ var n:int = Math.max(sl.length, tl.length);
+ for (var i:int = 0; i < n; i++)
+ {
+ var a:String = (i < sl.length) ? sl[i] : "";
+ var b:String = (i < tl.length) ? tl[i] : "";
+ if (a != b)
+ {
+ var c:String = "";
+ var d:String = "";
+ trace(i, "cur: ", a);
+ trace(i, "xml: ", b);
+ var m:int = Math.max(a.length, b.length);
+ for (var j:int = 0; j < m; j++)
+ {
+ c += a.charCodeAt(j) + " ";
+ d += b.charCodeAt(j) + " ";
+ }
+ trace(i, "cur: ", c);
+ trace(i, "xml: ", d);
+ }
+ }
+ }
}
}