<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Josh @ Adobe</title>
	<atom:link href="http://blogs.adobe.com/jgarnett/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.adobe.com/jgarnett</link>
	<description></description>
	<lastBuildDate>Wed, 22 Jun 2011 18:46:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Dropbox Encryption</title>
		<link>http://blogs.adobe.com/jgarnett/2011/06/22/dropbox-encryption/</link>
		<comments>http://blogs.adobe.com/jgarnett/2011/06/22/dropbox-encryption/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 18:46:51 +0000</pubDate>
		<dc:creator>Joshua Garnett</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/jgarnett/?p=104</guid>
		<description><![CDATA[With the recent security issues with DropBox http://blog.dropbox.com/?p=821 http://blog.dropbox.com/?p=735 http://techcrunch.com/2011/06/20/dropbox-security-bug-made-passwords-optional-for-four-hours/ http://paranoia.dubfire.net/2011/04/how-dropbox-sacrifices-user-privacy-for.html you may be considering adopting an additional encryption strategy. TrueCrypt http://www.truecrypt.org/ a cross-platform encryption solution has been recommended by a few sites. It works by creating an encrypted disk &#8230; <a href="http://blogs.adobe.com/jgarnett/2011/06/22/dropbox-encryption/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>With the recent security issues with DropBox <a href="http://blog.dropbox.com/?p=821">http://blog.dropbox.com/?p=821</a> <a href="http://blog.dropbox.com/?p=735">http://blog.dropbox.com/?p=735</a> <a href="http://techcrunch.com/2011/06/20/dropbox-security-bug-made-passwords-optional-for-four-hours/">http://techcrunch.com/2011/06/20/dropbox-security-bug-made-passwords-optional-for-four-hours/</a> <a href="http://paranoia.dubfire.net/2011/04/how-dropbox-sacrifices-user-privacy-for.html">http://paranoia.dubfire.net/2011/04/how-dropbox-sacrifices-user-privacy-for.html</a> you may be considering adopting an additional encryption strategy.</p>
<p>TrueCrypt <a title="http://www.truecrypt.org/" href="http://www.truecrypt.org/">http://www.truecrypt.org/</a> a cross-platform encryption solution has been recommended by a few sites.  It works by creating an encrypted disk file, which you can store in Dropbox.  The one issue with this strategy is it is very hard to sync differences in the file.  This means a few file changes could result in the re-syncing of your entire encrypted disk file, which really diminishes the value of Dropbox.</p>
<p>The solution I ultimately went with is BoxCryptor <a href="http://www.boxcryptor.com/">http://www.boxcryptor.com/</a> for Windows &amp; EncFS <a href="http://www.arg0.net/encfs">http://www.arg0.net/encfs</a> for OSX.  BoxCryptor is compatible with EncFS so data you use on one OS should be viewable on the others.  The big advantage of BoxCryptor/EncFS over TrueCrypt is it uses a pass-thru filesystem.  Instead of creating one big file that stores all of your data it encrypts each individual file (including its filename) separately.  This is a big win when using syncing software such as Dropbox.</p>
<p>BoxCryptor is pretty straightforward to install and run on Windows so I won’t go into the installation details.</p>
<p>Installing EncFS on OSX requires a bit more work.  Here are some basic instructions. Note, if you are going to share between Windows &amp; OSX I recommend first creating your Secure directory with BoxCryptor, it’ll keep you from having to pass in special flags to encfs.</p>
<ol>
<li>Install the Mac Developer Tools (aka XCode)
<ul>
<li>If you have your Snow Leopard disk handy you can install the developer tools from there. I believe it is under the Extras directory.</li>
<li>If you are running the latest version of Snow Leopard and have the App Store installed, you can download and <a href="http://itunes.apple.com/us/app/xcode/id422352214?mt=12">install XCode 4 from there</a>, which will give you access to all of the needed tools.</li>
</ul>
</li>
<li>Download and install MacPorts <a href="http://www.macports.org/">http://www.macports.org/</a></li>
<li>To make sure macports is up to date, run <strong>sudo port –v selfupdate</strong></li>
<li>Then run <strong>sudo port install encfs </strong>
<ul>
<li>This should automatically resolve any dependencies</li>
<li>Note, this takes a long time to run, I recommend grabbing a cup of coffee after kicking it off</li>
</ul>
</li>
<li>Reboot your system</li>
<li>Assuming your Encrypted file system is in ~/Dropbox/Secure run the following
<ol>
<li>(optional) If you haven’t created your encfs yet run: <strong>mkdir ~/Dropbox/Secure</strong></li>
<li><strong>mkdir ~/DropboxSecure</strong></li>
<li><strong>encfs ~/Dropbox/Secure ~/DropboxSecure </strong>
<ul>
<li>It’ll ask you for the password</li>
</ul>
</li>
<li>You should now be able to see your files in the ~/DropboxSecure directory</li>
</ol>
</li>
<li>To unmount the encrypted drive run:  <strong>umount ~/DropboxSecure</strong></li>
</ol>
<p>The overhead for the encryption is minimal.  I was seeing about a 20ms increase in running the ls command on an identical directory.  Now your files are secure even if your Dropbox account is compromised.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/jgarnett/2011/06/22/dropbox-encryption/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Way of Testivus</title>
		<link>http://blogs.adobe.com/jgarnett/2011/06/20/the-way-of-testivus/</link>
		<comments>http://blogs.adobe.com/jgarnett/2011/06/20/the-way-of-testivus/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 17:25:35 +0000</pubDate>
		<dc:creator>Joshua Garnett</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/jgarnett/?p=100</guid>
		<description><![CDATA[Just recently I stumbled across and amusing viewpoint on testing. The Way of Testivus is an interesting slant on encouraging testing karma instead of testing dogma. It&#8217;s a fun and short read.]]></description>
				<content:encoded><![CDATA[<p>Just recently I stumbled across and amusing viewpoint on testing.  <a href="www.agitar.com/downloads/TheWayOfTestivus.pdf">The Way of Testivus</a> is an interesting slant on encouraging testing karma instead of testing dogma.  It&#8217;s a fun and short read.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/jgarnett/2011/06/20/the-way-of-testivus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unit Testing JavaScript</title>
		<link>http://blogs.adobe.com/jgarnett/2011/06/15/unit-testing-javascript/</link>
		<comments>http://blogs.adobe.com/jgarnett/2011/06/15/unit-testing-javascript/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 17:56:27 +0000</pubDate>
		<dc:creator>Joshua Garnett</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/jgarnett/?p=86</guid>
		<description><![CDATA[I’ve stumbled across a really cool unit testing framework for JavaScript that I wanted to share with everyone. It is called js-test-driver. http://code.google.com/p/js-test-driver/ Most JavaScript unit test frameworks need to be manually run, which requires a dev/qe to open a &#8230; <a href="http://blogs.adobe.com/jgarnett/2011/06/15/unit-testing-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I’ve stumbled across a really cool unit testing framework for JavaScript that I wanted to share with everyone.  It is called js-test-driver.   <a href="http://code.google.com/p/js-test-driver/ ">http://code.google.com/p/js-test-driver/ </a>  Most JavaScript unit test frameworks need to be manually run, which requires a dev/qe to open a browser, start the tests, and verify the results.  This doesn’t really scale or work for a CI environment.  Js-test-driver aims to solve that problem.  </p>
<p>The software itself is built with java and has a client and server side component.  To start the server you just pass in a port and fire it up.  Ex: <strong>java -jar JsTestDriver-1.3.2.jar &#8211;port 4224</strong>    It also has the option of passing in a list of browser executables, which the server will automatically start and setup to listen for unit tests.  Additional browsers can be provisioned manually across a variety of devices by pointing to http://{the_servers_IP}:4224 in any browser window.   Think Mobile.  The client side is run by setting up a config file with some general information, including the server to connect to and the JavaScript files to load.  </p>
<p><strong>Example: jsTestDriver.conf</strong></p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;">server: http:<span style="color: #000000; font-weight: bold;">//</span>localhost:<span style="color: #000000;">4224</span>
&nbsp;
load:
  - bin<span style="color: #000000; font-weight: bold;">/*</span>.js
&nbsp;
timeout: <span style="color: #000000;">90</span></pre></td></tr></table></div>

<p>The tests are then ran by calling the same jar file:  <strong>java -jar JsTestDriver-1.3.2.jar &#8211;tests all</strong></p>
<p>In my proof of concept, I was able to quickly get 8 browsers, (4 Windows browsers, 2 Mac browsers, iPad Safari, and iPhone Safari), up and running for testing against.  The Unit Test itself was a very basic Hello World test.  The command took more time initializing the jvm &#038; connections than the actual unit tests, which only took 26ms to run across all of the browsers/devices.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;">Joshua<span style="color: #000000; font-weight: bold;">@</span>Quake ~<span style="color: #000000; font-weight: bold;">/</span>js-test-driver
$ java <span style="color: #660033;">-jar</span> JsTestDriver-1.3.2.jar <span style="color: #660033;">--tests</span> all
........
Total <span style="color: #000000;">8</span> tests <span style="color: #7a0874; font-weight: bold;">&#40;</span>Passed: <span style="color: #000000;">8</span>; Fails: <span style="color: #000000;">0</span>; Errors: <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1.00</span> ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  Safari 533.21.1 Windows: Run <span style="color: #000000;">1</span> tests <span style="color: #7a0874; font-weight: bold;">&#40;</span>Passed: <span style="color: #000000;">1</span>; Fails: <span style="color: #000000;">0</span>; Errors <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">0.00</span> ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  Safari 6533.18.5 iPhone OS: Run <span style="color: #000000;">1</span> tests <span style="color: #7a0874; font-weight: bold;">&#40;</span>Passed: <span style="color: #000000;">1</span>; Fails: <span style="color: #000000;">0</span>; Errors <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1.00</span> ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  Firefox 4.0.1 Windows: Run <span style="color: #000000;">1</span> tests <span style="color: #7a0874; font-weight: bold;">&#40;</span>Passed: <span style="color: #000000;">1</span>; Fails: <span style="color: #000000;">0</span>; Errors <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1.00</span> ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  Firefox 4.0.1 Mac OS: Run <span style="color: #000000;">1</span> tests <span style="color: #7a0874; font-weight: bold;">&#40;</span>Passed: <span style="color: #000000;">1</span>; Fails: <span style="color: #000000;">0</span>; Errors <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">0.00</span> ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  Safari 6533.18.5 Mac OS: Run <span style="color: #000000;">1</span> tests <span style="color: #7a0874; font-weight: bold;">&#40;</span>Passed: <span style="color: #000000;">1</span>; Fails: <span style="color: #000000;">0</span>; Errors <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1.00</span> ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  Chrome 12.0.742.100 Windows: Run <span style="color: #000000;">1</span> tests <span style="color: #7a0874; font-weight: bold;">&#40;</span>Passed: <span style="color: #000000;">1</span>; Fails: <span style="color: #000000;">0</span>; Errors <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">0.00</span> ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  Safari 533.21.1 Mac OS: Run <span style="color: #000000;">1</span> tests <span style="color: #7a0874; font-weight: bold;">&#40;</span>Passed: <span style="color: #000000;">1</span>; Fails: <span style="color: #000000;">0</span>; Errors <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1.00</span> ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  Microsoft Internet Explorer <span style="color: #000000;">9.0</span> Windows: Run <span style="color: #000000;">1</span> tests <span style="color: #7a0874; font-weight: bold;">&#40;</span>Passed: <span style="color: #000000;">1</span>; Fails: <span style="color: #000000;">0</span>; Errors <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">0.00</span> ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
Joshua<span style="color: #000000; font-weight: bold;">@</span>Quake ~<span style="color: #000000; font-weight: bold;">/</span>js-test-driver
$</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/jgarnett/2011/06/15/unit-testing-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Displaying extremely large strings in a Flex DataGridColumn</title>
		<link>http://blogs.adobe.com/jgarnett/2011/04/04/displaying-extremely-large-strings-in-a-flex-datagridcolumn/</link>
		<comments>http://blogs.adobe.com/jgarnett/2011/04/04/displaying-extremely-large-strings-in-a-flex-datagridcolumn/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 03:11:47 +0000</pubDate>
		<dc:creator>Joshua Garnett</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/jgarnett/?p=54</guid>
		<description><![CDATA[Recently while working on InMarket, I was tasked with displaying very large strings within a DataGridColumn to our users. The variableRowHeight property of a DataGrid will get you part of the way, but if you start to exceed a few &#8230; <a href="http://blogs.adobe.com/jgarnett/2011/04/04/displaying-extremely-large-strings-in-a-flex-datagridcolumn/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Recently while working on <a href="http://www.adobe.com/devnet/inmarket.html">InMarket</a>, I was tasked with displaying very large strings within a DataGridColumn to our users.   The variableRowHeight property of a DataGrid will get you part of the way, but if you start to exceed a few thousand characters, you&#8217;ll find that your row has a height larger then your entire DataGrid!  As a way around this we ended up using the itemEditor capabilities of the DataGrid.  </p>
<p><span id="more-54"></span></p>
<p>To start off, first we created an itemRenderer for the DataGridColumn, which displays a maximum number of characters.  If the maximum number of characters is exceeded the itemRenderer automatically truncates the string and adds &#8220;&#8230; Read More&#8221; to it.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="actionscript" style="font-family:monospace;">package
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">adobe</span>.<span style="color: #006600;">utils</span>.<span style="color: #006600;">StringUtil</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #0066CC;">text</span>.<span style="color: #006600;">StyleSheet</span>;
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">controls</span>.<span style="color: #006600;">dataGridClasses</span>.<span style="color: #006600;">DataGridItemRenderer</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> PartialTextDataGridItemRenderer <span style="color: #0066CC;">extends</span> DataGridItemRenderer
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> const MAXIMUM_NUMBER_OF_CHARACTERS:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">256</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> PartialTextDataGridItemRenderer<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> override <span style="color: #000000; font-weight: bold;">function</span> validateProperties<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">validateProperties</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>listData<span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
				<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;&quot;</span>;		
&nbsp;
				<span style="color: #808080; font-style: italic;">//truncate the text if needed and render text as HTML</span>
				<span style="color: #0066CC;">htmlText</span> = truncateLabel<span style="color: #66cc66;">&#40;</span>listData.<span style="color: #006600;">label</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">//apply style to text so Read More link looks like a link</span>
				styleSheet = getLinkStyle<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">function</span> getLinkStyle<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : StyleSheet <span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> style:StyleSheet = <span style="color: #000000; font-weight: bold;">new</span> StyleSheet<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #000000; font-weight: bold;">var</span> styleObj:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			styleObj.<span style="color: #006600;">fontWeight</span> = <span style="color: #ff0000;">&quot;normal&quot;</span>;
			styleObj.<span style="color: #006600;">fontSize</span> = <span style="color: #ff0000;">&quot;12px&quot;</span>;
			styleObj.<span style="color: #0066CC;">color</span> = <span style="color: #ff0000;">&quot;#0000ff&quot;</span>;
			styleObj.<span style="color: #006600;">textDecoration</span> = <span style="color: #ff0000;">&quot;underline&quot;</span>;
			style.<span style="color: #0066CC;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;a&quot;</span>, styleObj<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #b1b100;">return</span> style;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">function</span> truncateLabel<span style="color: #66cc66;">&#40;</span>label:<span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">String</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>label.<span style="color: #0066CC;">length</span> <span style="color: #66cc66;">&gt;</span> MAXIMUM_NUMBER_OF_CHARACTERS<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				label = label.<span style="color: #0066CC;">substr</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,MAXIMUM_NUMBER_OF_CHARACTERS<span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">//remove any extra whitespace at the end of the string</span>
				label = StringUtil.<span style="color: #006600;">trim</span><span style="color: #66cc66;">&#40;</span>label<span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">//ensure that label ends with ...</span>
				<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>label.<span style="color: #0066CC;">charAt</span><span style="color: #66cc66;">&#40;</span>label.<span style="color: #006600;">length</span>-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> == <span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
					label = label + <span style="color: #ff0000;">&quot;..&quot;</span>;
				<span style="color: #66cc66;">&#125;</span>
				<span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
					label = label + <span style="color: #ff0000;">&quot;...&quot;</span>;
				<span style="color: #66cc66;">&#125;</span>
&nbsp;
				<span style="color: #808080; font-style: italic;">//add read more link to indicate to user that there is more</span>
				<span style="color: #808080; font-style: italic;">//text and that it is clickable.</span>
				label = label + <span style="color: #ff0000;">&quot;  &lt;a href=<span style="color: #000099; font-weight: bold;">\&quot;</span>#<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;Read More&lt;/a&gt;&quot;</span>;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #b1b100;">return</span> label;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Next, for the itemEditor itemRenderer we use a TextArea that is set to not be editable.  We also strip away the styling that would make it look like a TextArea embeded within the column.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="actionscript" style="font-family:monospace;">package
<span style="color: #66cc66;">&#123;</span>	
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">controls</span>.<span style="color: #006600;">TextArea</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	 * Creates an non-editable TextArea to be used as renderer and
	 * styled so that it is seamless with the other DataGrid cells.
	 */</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> FullTextDataGridItemRenderer <span style="color: #0066CC;">extends</span> TextArea
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> FullTextDataGridItemRenderer<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">editable</span> = <span style="color: #000000; font-weight: bold;">false</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;paddingLeft&quot;</span>,<span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;paddingRight&quot;</span>,<span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;paddingTop&quot;</span>,<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;paddingBottom&quot;</span>,<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;backgroundAlpha&quot;</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;borderStyle&quot;</span>, <span style="color: #ff0000;">&quot;none&quot;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>What this does is, whenever the column is clicked on, any strings that exceed the maximum length will be converted to their full length and embedded within a scrollable TextArea.   It provides a seamless experience for users, by not forcing them to read a tooltip or some other dialog.  Here is an example application that puts the two itemRenderers to use.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span></span>
<span style="color: #000000;">				layout=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
<span style="color: #000000;">				width=<span style="color: #ff0000;">&quot;800&quot;</span></span>
<span style="color: #000000;">				height=<span style="color: #ff0000;">&quot;600&quot;</span></span>
<span style="color: #000000;">				paddingBottom=<span style="color: #ff0000;">&quot;0&quot;</span> </span>
<span style="color: #000000;">				paddingLeft=<span style="color: #ff0000;">&quot;0&quot;</span> </span>
<span style="color: #000000;">				paddingRight=<span style="color: #ff0000;">&quot;0&quot;</span> </span>
<span style="color: #000000;">				paddingTop=<span style="color: #ff0000;">&quot;0&quot;</span></span>
<span style="color: #000000;">				creationComplete=<span style="color: #ff0000;">&quot;creationCompleteHandler(event)&quot;</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
	<span style="color: #339933;">&lt;mx:Script&gt;</span>
<span style="color: #339933;">		&lt;![CDATA[</span>
<span style="color: #339933;">			import mx.collections.ArrayCollection;</span>
<span style="color: #339933;">			import mx.events.FlexEvent;</span>
&nbsp;
<span style="color: #339933;">			[Bindable] private var gridDataProvider:ArrayCollection;</span>
&nbsp;
<span style="color: #339933;">			/**</span>
<span style="color: #339933;">			 * On creationComplete, create the data provider for the DataGrid.</span>
<span style="color: #339933;">			 */</span>
<span style="color: #339933;">			protected function creationCompleteHandler(event:FlexEvent):void</span>
<span style="color: #339933;">			{</span>
<span style="color: #339933;">				gridDataProvider = new ArrayCollection();</span>
&nbsp;
<span style="color: #339933;">				var longDescription:String = &quot;Lorem ipsum dolor sit amet, consectetur &quot; +</span>
<span style="color: #339933;">					&quot;adipiscing elit. Maecenas pellentesque odio eget tortor feugiat &quot; +</span>
<span style="color: #339933;">					&quot;sit amet auctor neque eleifend. Curabitur pharetra nunc eget &quot; +</span>
<span style="color: #339933;">					&quot;purus hendrerit sodales. Pellentesque congue commodo felis, sed &quot; +</span>
<span style="color: #339933;">					&quot;volutpat sem vulputate sit amet. Nulla a dolor consectetur urna &quot; +</span>
<span style="color: #339933;">					&quot;laoreet rhoncus nec ut lacus. Phasellus neque felis, sagittis sed &quot; +</span>
<span style="color: #339933;">					&quot;lobortis sed, accumsan suscipit lectus. In nec placerat nulla. Proin &quot; +</span>
<span style="color: #339933;">					&quot;id sem vitae massa adipiscing luctus. Quisque vitae urna erat, a &quot; +</span>
<span style="color: #339933;">					&quot;ultrices est. Nulla scelerisque varius turpis et porttitor. Nullam &quot; +</span>
<span style="color: #339933;">					&quot;convallis elementum condimentum. Nulla ac ornare est. Phasellus &quot; +</span>
<span style="color: #339933;">					&quot;posuere vestibulum dolor nec cursus. &quot;;</span>
&nbsp;
<span style="color: #339933;">				var longShortDescription:String = &quot;Lorem ipsum dolor sit amet&quot;;</span>
&nbsp;
<span style="color: #339933;">				gridDataProvider.addItem({id:1, description:longDescription, shortDescription:longShortDescription});</span>
&nbsp;
<span style="color: #339933;">				gridDataProvider.addItem({id:2, description:longShortDescription, shortDescription:longShortDescription});</span>
<span style="color: #339933;">			}</span>
&nbsp;
<span style="color: #339933;">		]]&gt;</span>
<span style="color: #339933;">	&lt;/mx:Script&gt;</span>
&nbsp;
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:DataGrid</span> width=<span style="color: #ff0000;">&quot;100%&quot;</span> </span>
<span style="color: #000000;">				 height=<span style="color: #ff0000;">&quot;100%&quot;</span></span>
<span style="color: #000000;">				 dataProvider=<span style="color: #ff0000;">&quot;{gridDataProvider}&quot;</span></span>
<span style="color: #000000;">				 variableRowHeight=<span style="color: #ff0000;">&quot;true&quot;</span> </span>
<span style="color: #000000;">				 wordWrap=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #000000;">				 verticalAlign=<span style="color: #ff0000;">&quot;top&quot;</span> </span>
<span style="color: #000000;">				 editable=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #000000;">				 sortableColumns=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
		<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:columns</span><span style="color: #7400FF;">&gt;</span></span>			
			<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:DataGridColumn</span> width=<span style="color: #ff0000;">&quot;100&quot;</span></span>
<span style="color: #000000;">							   dataField=<span style="color: #ff0000;">&quot;id&quot;</span></span>
<span style="color: #000000;">							   headerText=<span style="color: #ff0000;">&quot;Id&quot;</span></span>
<span style="color: #000000;">							   editable=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
&nbsp;
			<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:DataGridColumn</span> dataField=<span style="color: #ff0000;">&quot;description&quot;</span> </span>
<span style="color: #000000;">							   headerText=<span style="color: #ff0000;">&quot;Description&quot;</span></span>
<span style="color: #000000;">							   editable=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #000000;">							   itemRenderer=<span style="color: #ff0000;">&quot;PartialTextDataGridItemRenderer&quot;</span></span>
<span style="color: #000000;">							   itemEditor=<span style="color: #ff0000;">&quot;FullTextDataGridItemRenderer&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
&nbsp;
			<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:DataGridColumn</span> width=<span style="color: #ff0000;">&quot;200&quot;</span></span>
<span style="color: #000000;">							   dataField=<span style="color: #ff0000;">&quot;shortDescription&quot;</span> </span>
<span style="color: #000000;">							   headerText=<span style="color: #ff0000;">&quot;Short Description&quot;</span></span>
<span style="color: #000000;">							   editable=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
		<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:columns</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:DataGrid</span><span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></pre></td></tr></table></div>

<p><a class="lightbox"  title ="Partial Text in a DataGrid" href="http://blogs.adobe.com/jgarnett/files/2011/04/PartialText.png"><img src="http://blogs.adobe.com/jgarnett/files/2011/04/PartialText.png" alt="" title="Partial Text in a DataGrid" width="640" height="480" class="alignleft size-full wp-image-67" /></a></p>
<p><a class="lightbox"  title ="Full Text in a DataGrid" href="http://blogs.adobe.com/jgarnett/files/2011/04/FullText.png"><img src="http://blogs.adobe.com/jgarnett/files/2011/04/FullText.png" alt="" title="Full Text in a DataGrid" width="640" height="480" class="alignleft size-full wp-image-68" /></a></p>
<p>The source code can be downloaded at <a href="https://github.com/joshgarnett/JoshAtAdobeSourceCode/tree/master/LargeStringsInDataGrid">https://github.com/joshgarnett/JoshAtAdobeSourceCode/tree/master/LargeStringsInDataGrid</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/jgarnett/2011/04/04/displaying-extremely-large-strings-in-a-flex-datagridcolumn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuous Integratation testing FlexUnit on CentOS</title>
		<link>http://blogs.adobe.com/jgarnett/2011/03/13/continuous-integratation-testing-flexunit-on-centos/</link>
		<comments>http://blogs.adobe.com/jgarnett/2011/03/13/continuous-integratation-testing-flexunit-on-centos/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 22:15:20 +0000</pubDate>
		<dc:creator>Joshua Garnett</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[flexunit]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/jgarnett/?p=4</guid>
		<description><![CDATA[First let me introduce myself.  My name is Joshua Garnett.  I joined Adobe last fall as a Computer Scientist on the Flash Platform Services Team.  I&#8217;m currently working on the InMarket app distribution service. If you&#8217;re an app developer and &#8230; <a href="http://blogs.adobe.com/jgarnett/2011/03/13/continuous-integratation-testing-flexunit-on-centos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>First let me introduce myself.  My name is Joshua Garnett.  I joined Adobe last fall as a Computer Scientist on the Flash Platform Services Team.  I&#8217;m currently working on the <a href="http://www.adobe.com/devnet/inmarket.html">InMarket</a> app distribution service.  If you&#8217;re an app developer and looking to simplify your deployment process, you should definitely check it out.</p>
<p>Now on to the actual reason behind this post.  Recently I was tasked with getting <a href="http://www.flexunit.org/">FlexUnit</a> tests to run in our CI environment.  There is a lot of documentation out there on how to get things up and running on Hudson, but I wasn&#8217;t able to find a fool-proof method for those of us who just want to use an ant build script to run the tests.   This is a brief summary of the items that need to be setup and installed in order to do just that.</p>
<p>Here is the software that I ended up using:</p>
<ul>
<li><a href="http://www.centos.org/">CentOS 5.5</a></li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/Downloads">Flex 3.5.0.12683 SDK</a></li>
<li><a href="http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.0-bin.tar.gz">Ant 1.7.0</a></li>
<li><a href="http://www.flexunit.org/releases/flexunit-4.1.0_RC2-28-3.5.0.12683.zip">FlexUnit 4.1 RC2 for Flex 3.5</a> &#8211; Note, I ran into issues getting things working with FlexUnit 4.0, that is why I ended up using the RC for Flex 4.1</li>
</ul>
<p><span id="more-4"></span><br />
I&#8217;m not going to cover creating FlexUnit tests, but I wanted to display an example Test Application for running the Unit tests.   The key item is adding the CIListener() to the FlexUnitCore.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> </span>
<span style="color: #000000;">	xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span></span>
<span style="color: #000000;">	creationComplete=<span style="color: #ff0000;">&quot;runMe()</span>
<span style="color: #000000;">	xmlns:adobe=&quot;</span>http://www.adobe.com/<span style="color: #cc66cc;">2009</span>/flexUnitUIRunner<span style="color: #ff0000;">&quot;&gt;</span></span>
&nbsp;
	<span style="color: #339933;">&lt;mx:Script&gt;</span>
<span style="color: #339933;">		&lt;![CDATA[</span>
<span style="color: #339933;">			import com.your.company.tests.AllTests;</span>
&nbsp;
<span style="color: #339933;">			import flexunit.framework.TestSuite;</span>
&nbsp;
<span style="color: #339933;">			import org.flexunit.listeners.CIListener;</span>
<span style="color: #339933;">			import org.flexunit.listeners.UIListener;</span>
<span style="color: #339933;">			import org.flexunit.runner.FlexUnitCore;</span>
&nbsp;
<span style="color: #339933;">			private var core:FlexUnitCore;</span>
&nbsp;
<span style="color: #339933;">			public function runMe():void {</span>
<span style="color: #339933;">				core = new FlexUnitCore();</span>
<span style="color: #339933;">				core.addListener(new UIListener(uiListener));</span>
<span style="color: #339933;">				core.addListener(new CIListener());</span>
&nbsp;
<span style="color: #339933;">				core.run( com.your.company.tests.AllTests );</span>
<span style="color: #339933;">			}</span>
<span style="color: #339933;">		]]&gt;</span>
<span style="color: #339933;">	&lt;/mx:Script&gt;</span>
&nbsp;
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;adobe:TestRunnerBase</span> id=<span style="color: #ff0000;">&quot;uiListener&quot;</span> width=<span style="color: #ff0000;">&quot;100%&quot;</span> height=<span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></pre></td></tr></table></div>

<p>Once the Testing Application is created, we need to create an ant build script to run the tests.  The script below is compatible with Ant 1.7.0+ and should run on multiple platforms.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;project</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;YourProject&quot;</span> <span style="color: #000066;">default</span>=<span style="color: #ff0000;">&quot;test&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;SRC_DIR&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;./src&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;TEST_DIR&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;./bin-test&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;FLEX_UNIT_DIR&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;./flexunit-output&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;flexunit.jar&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;./libs/flexUnitTasks-4.1.0_RC2-28.jar&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;flexunit.swc&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;./libs/flexunit-4.1.0_RC2-28-flex_3.5.0.12683.swc&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;flexunit-uilistener.swc&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;./libs/flexunit-uilistener-4.1.0_RC2-28-flex_3.5.0.12683.swc&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;flexunit-cilistener.swc&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;./libs/flexunit-cilistener-4.1.0_RC2-28-flex_3.5.0.12683.swc&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
	<span style="color: #808080; font-style: italic;">&lt;!-- Setup platform booleans --&gt;</span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;condition</span> <span style="color: #000066;">property</span>=<span style="color: #ff0000;">&quot;isMac&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;os</span> <span style="color: #000066;">family</span>=<span style="color: #ff0000;">&quot;mac&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/condition<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;condition</span> <span style="color: #000066;">property</span>=<span style="color: #ff0000;">&quot;isWindows&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;os</span> <span style="color: #000066;">family</span>=<span style="color: #ff0000;">&quot;windows&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/condition<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;condition</span> <span style="color: #000066;">property</span>=<span style="color: #ff0000;">&quot;isLinux&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;os</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Linux&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/condition<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #808080; font-style: italic;">&lt;!-- </span>
<span style="color: #808080; font-style: italic;">		Different platforms can have different SDK locations, mxmlc scripts, </span>
<span style="color: #808080; font-style: italic;">		and FlexUnit properties.</span>
<span style="color: #808080; font-style: italic;">	--&gt;</span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;setupEnvironment&quot;</span> <span style="color: #000066;">depends</span>=<span style="color: #ff0000;">&quot;setPropsMac,setPropsWindows,setPropsLinux&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;setPropsMac&quot;</span> <span style="color: #000066;">if</span>=<span style="color: #ff0000;">&quot;isMac&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;FLEX_HOME&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;/Applications/Adobe Flash Builder 4/sdks/3.5.0/&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;MXMLC&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/bin/mxmlc&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;HEADLESS&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;setPropsWindows&quot;</span> <span style="color: #000066;">if</span>=<span style="color: #ff0000;">&quot;isWindows&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;FLEX_HOME&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;C:\Program Files (x86)\Adobe\Adobe Flash Builder 4\sdks\3.5.0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;MXMLC&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/bin/mxmlc.exe&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;HEADLESS&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;setPropsLinux&quot;</span> <span style="color: #000066;">if</span>=<span style="color: #ff0000;">&quot;isLinux&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;FLEX_HOME&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;/opt/flex_sdk_3.5.0.12683&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;MXMLC&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/bin/mxmlc&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #808080; font-style: italic;">&lt;!-- only linux should run in headless mode --&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;HEADLESS&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #808080; font-style: italic;">&lt;!-- this is used for running flexunit from the command line --&gt;</span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;taskdef</span> <span style="color: #000066;">resource</span>=<span style="color: #ff0000;">&quot;flexUnitTasks.tasks&quot;</span> <span style="color: #000066;">classpath</span>=<span style="color: #ff0000;">&quot;${flexunit.jar}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;clean&quot;</span> <span style="color: #000066;">depends</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;delete</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${TEST_DIR}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;delete</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${FLEX_UNIT_DIR}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;test&quot;</span> <span style="color: #000066;">depends</span>=<span style="color: #ff0000;">&quot;clean,setupEnvironment&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;debug&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;antcall</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;flexUnitTest&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;flexUnitTest&quot;</span> <span style="color: #000066;">depends</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;exec</span> <span style="color: #000066;">executable</span>=<span style="color: #ff0000;">&quot;${MXMLC}&quot;</span> <span style="color: #000066;">failonerror</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-debug=${debug}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-compiler.source-path=${SRC_DIR}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-source-path=${SRC_DIR}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-link-report=linkReport.xml&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-library-path+=${flexunit.swc}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-library-path+=${flexunit-uilistener.swc}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-library-path+=${flexunit-cilistener.swc}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #808080; font-style: italic;">&lt;!-- Be sure to include any other swcs needed to build the swf --&gt;</span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-output=${TEST_DIR}/FlexUnitTestingApp.swf&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;--&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${SRC_DIR}/FlexUnitTestingApp.mxml&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/exec<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mkdir</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${FLEX_UNIT_DIR}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
		<span style="color: #808080; font-style: italic;">&lt;!-- </span>
<span style="color: #808080; font-style: italic;">			Note: By specifying haltonfailure, the ant script will use a return </span>
<span style="color: #808080; font-style: italic;">			code of 1 instead of 0, which you can use to script validation of</span>
<span style="color: #808080; font-style: italic;">			the test results.</span>
<span style="color: #808080; font-style: italic;">		--&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;flexunit</span> <span style="color: #000066;">swf</span>=<span style="color: #ff0000;">&quot;${TEST_DIR}/FlexUnitTestingApp.swf&quot;</span> </span>
<span style="color: #009900;">					<span style="color: #000066;">toDir</span>=<span style="color: #ff0000;">&quot;$FLEX_UNIT_DIR}&quot;</span></span>
<span style="color: #009900;">					<span style="color: #000066;">haltonfailure</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;">					<span style="color: #000066;">headless</span>=<span style="color: #ff0000;">&quot;${HEADLESS}&quot;</span></span>
<span style="color: #009900;">					<span style="color: #000066;">verbose</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;">					<span style="color: #000066;">localTrusted</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;junitreport</span> <span style="color: #000066;">todir</span>=<span style="color: #ff0000;">&quot;${FLEX_UNIT_DIR}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fileset</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${FLEX_UNIT_DIR}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;include</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;TEST-*.xml&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fileset<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;report</span> <span style="color: #000066;">format</span>=<span style="color: #ff0000;">&quot;frames&quot;</span> <span style="color: #000066;">todir</span>=<span style="color: #ff0000;">&quot;${FLEX_UNIT_DIR}/html&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/junitreport<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/project<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Lastly, we need to install a few packages on CentOS 5.5.   All of these commands should be run as root.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Download and install the flash projector</span>
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>download.macromedia.com<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>flashplayer<span style="color: #000000; font-weight: bold;">/</span>updaters<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span><span style="color: #000000; font-weight: bold;">/</span>flashplayer_10_sa_debug.tar.gz
<span style="color: #c20cb9; font-weight: bold;">tar</span> xzvf flashplayer_10_sa_debug.tar.gz
&nbsp;
<span style="color: #666666; font-style: italic;"># Add it to the PATH and make the symbolic link gflashplayer</span>
<span style="color: #c20cb9; font-weight: bold;">mv</span> flashplayerdebugger <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin
<span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>flashplayerdebugger <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>gflashplayer
&nbsp;
<span style="color: #666666; font-style: italic;"># install xvnc</span>
<span style="color: #c20cb9; font-weight: bold;">yum install</span> vnc-server
&nbsp;
<span style="color: #666666; font-style: italic;"># install windowing system</span>
<span style="color: #c20cb9; font-weight: bold;">yum groupinstall</span> <span style="color: #ff0000;">&quot;GNOME Desktop Environment&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Setup VNC Password</span>
vncpasswd</pre></td></tr></table></div>

<p>We are now ready to run the FlexUnit tests on a CentOS instance.   By running either ant or ant test we should see the swf build, flex unit run, and then finally see the creation of the HTML files for viewing the results.  Sample output below.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;">Buildfile: build.xml
&nbsp;
clean:
   <span style="color: #7a0874; font-weight: bold;">&#91;</span>delete<span style="color: #7a0874; font-weight: bold;">&#93;</span> Deleting directory <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bin-test
   <span style="color: #7a0874; font-weight: bold;">&#91;</span>delete<span style="color: #7a0874; font-weight: bold;">&#93;</span> Deleting directory <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>flexunit-output
&nbsp;
setPropsMac:
&nbsp;
setPropsWindows:
&nbsp;
setPropsLinux:
&nbsp;
setupEnvironment:
&nbsp;
test:
&nbsp;
flexUnitTest:
     <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">exec</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> Loading configuration <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>flex_sdk_3.5.0.12683<span style="color: #000000; font-weight: bold;">/</span>frameworks<span style="color: #000000; font-weight: bold;">/</span>flex-config.xml
     <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">exec</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bin-test<span style="color: #000000; font-weight: bold;">/</span>FlexUnitTestingApp.swf <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">911489</span> bytes<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">mkdir</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> Created dir: <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>flexunit-output
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Validating task attributes ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> OS: <span style="color: #7a0874; font-weight: bold;">&#91;</span>Linux<span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Generating default values ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Using default working <span style="color: #c20cb9; font-weight: bold;">dir</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Using default reporting <span style="color: #c20cb9; font-weight: bold;">dir</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Using the following settings <span style="color: #000000; font-weight: bold;">for</span> the <span style="color: #7a0874; font-weight: bold;">test</span> run:
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span>     FLEX_HOME: <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>flex_sdk_3.5.0.12683<span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span>     haltonfailure: <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">true</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span>     headless: <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">true</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span>     display: <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">99</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span>     localTrusted: <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">true</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span>     player: <span style="color: #7a0874; font-weight: bold;">&#91;</span>flash<span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span>     port: <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">1024</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span>     swf: <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bin-test<span style="color: #000000; font-weight: bold;">/</span>FlexUnitTestingApp.swf<span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span>     timeout: <span style="color: #7a0874; font-weight: bold;">&#91;</span>60000ms<span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span>     toDir: <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #7a0874; font-weight: bold;">&#93;</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Setting up server process ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Starting server ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Starting xvnc
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Attempting start on :<span style="color: #000000;">99</span> ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Executing <span style="color: #ff0000;">'vncserver'</span> with arguments:
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #ff0000;">':99'</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> The <span style="color: #ff0000;">''</span> characters around the executable and arguments are
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> not part of the command.
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Opening server socket on port <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">1024</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>.
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Waiting <span style="color: #000000; font-weight: bold;">for</span> client connection ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Starting applications specified <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>.vnc<span style="color: #000000; font-weight: bold;">/</span>xstartup
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Setting <span style="color: #007800;">DISPLAY</span>=:<span style="color: #000000;">99</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Executing <span style="color: #ff0000;">'gflashplayer'</span> with arguments:
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #ff0000;">'/opt/bin-test/FlexUnitTestingApp.swf'</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> The <span style="color: #ff0000;">''</span> characters around the executable and arguments are
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> not part of the command.
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Client connected.
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Setting inbound buffer <span style="color: #c20cb9; font-weight: bold;">size</span> to <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">262144</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> bytes.
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Receiving data ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Sending acknowledgement to player to start sending <span style="color: #7a0874; font-weight: bold;">test</span> data ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Stopping server ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> End of <span style="color: #7a0874; font-weight: bold;">test</span> data reached, sending acknowledgement to player ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Closing client connection ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Closing server on port <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">1024</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Terminating xvnc on :<span style="color: #000000;">99</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Executing <span style="color: #ff0000;">'vncserver'</span> with arguments:
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #ff0000;">'-kill'</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #ff0000;">':99'</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> The <span style="color: #ff0000;">''</span> characters around the executable and arguments are
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> not part of the command.
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Killing Xvnc process ID <span style="color: #000000;">3685</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Analyzing reports ...
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Suite: com.your.company.tests.ParserTest
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Tests run: <span style="color: #000000;">3</span>, Failures: <span style="color: #000000;">0</span>, Errors: <span style="color: #000000;">0</span>, Skipped: <span style="color: #000000;">0</span>, Time elapsed: <span style="color: #000000;">0.044</span> sec
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Suite: com.your.company.tests.ModelTest
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Tests run: <span style="color: #000000;">2</span>, Failures: <span style="color: #000000;">0</span>, Errors: <span style="color: #000000;">0</span>, Skipped: <span style="color: #000000;">0</span>, Time elapsed: <span style="color: #000000;">0.025</span> sec
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Results :
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> Tests run: <span style="color: #000000;">5</span>, Failures: <span style="color: #000000;">0</span>, Errors: <span style="color: #000000;">0</span>, Skipped: <span style="color: #000000;">0</span>, Time elapsed: <span style="color: #000000;">0.069</span> sec
 <span style="color: #7a0874; font-weight: bold;">&#91;</span>flexunit<span style="color: #7a0874; font-weight: bold;">&#93;</span> 
<span style="color: #7a0874; font-weight: bold;">&#91;</span>junitreport<span style="color: #7a0874; font-weight: bold;">&#93;</span> Processing <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>flexunit-output<span style="color: #000000; font-weight: bold;">/</span>TESTS-TestSuites.xml to <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>null2057278126
<span style="color: #7a0874; font-weight: bold;">&#91;</span>junitreport<span style="color: #7a0874; font-weight: bold;">&#93;</span> Transform time: 267ms
<span style="color: #7a0874; font-weight: bold;">&#91;</span>junitreport<span style="color: #7a0874; font-weight: bold;">&#93;</span> Deleting: <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>null2057278126
&nbsp;
BUILD SUCCESSFUL
Total time: <span style="color: #000000;">21</span> seconds</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/jgarnett/2011/03/13/continuous-integratation-testing-flexunit-on-centos/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
