blob: a6a3d9e57c2a2fa3c47b8ed0c8e202575f4b7d41 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
package promises.cases
{
import flash.events.TimerEvent;
import flash.net.URLRequest;
import flash.utils.Timer;
import org.apache.flex.promises.Promise;
import org.apache.flex.promises.interfaces.IThenable;
import org.flexunit.asserts.assertEquals;
import org.flexunit.async.Async;
public class PromisesJIRATests
{
//--------------------------------------------------------------------------
//
// Variables
//
//--------------------------------------------------------------------------
private var expected_:*;
private var promise_:IThenable;
private var got_:*;
private var timer_:Timer;
//--------------------------------------------------------------------------
//
// Methods
//
//--------------------------------------------------------------------------
//----------------------------------
// parseGot_
//----------------------------------
private function parseGot_(value:*):void {
this.got_ = value;
}
//----------------------------------
// setUp
//----------------------------------
[Before(async)]
public function setUp():void
{
this.timer_ = new Timer(100, 1);
}
//----------------------------------
// tearDown
//----------------------------------
[After(async)]
public function tearDown():void
{
this.promise_ = null;
if (this.timer_)
{
this.timer_.stop();
this.timer_ = null;
}
}
//----------------------------------
// verifyGotType_
//----------------------------------
private function verifyGotType_(event:TimerEvent, result:*):void {
assertEquals(this.expected_, this.got_.toString());
}
//--------------------------------------------------------------------------
//
// Tests
//
//--------------------------------------------------------------------------
//----------------------------------
// test_FLEX34753
//----------------------------------
[Test(async)]
public function test_FLEX34753():void
{
Async.handleEvent(this, timer_, TimerEvent.TIMER_COMPLETE, verifyGotType_);
timer_.start();
promise_ = new Promise(function (fulfill:Function = null, reject:Function = null):*
{
var urlRequest:URLRequest = new URLRequest('http://flex.apache.org');
fulfill(urlRequest);
});
expected_ = '[object URLRequest]';
promise_.then(parseGot_);
}
}}