         
         // Test show
         APESuperHUD.showOrUpdateHUD(loadingIndicator: .Standard, message: originalText, presentingView: testView)
-        validateShow(testView)
-        validateLoadIndicator(testView, informationText: self.originalText)
+        validateShow(view: testView)
+        validateLoadIndicator(view: testView, informationText: self.originalText)
         
         // Test update
         APESuperHUD.showOrUpdateHUD(loadingIndicator: .Standard, message: updatedTest, presentingView: testView)
-        validateUpdateLoadingIndicator(testView, description: "Delay update loading indicator with info")
+        validateUpdateLoadingIndicator(view: testView, description: "Delay update loading indicator with info")
         
         // Test remove
-        self.validateRemove(testView, description: "Completion remove loading indicator with info")
+        self.validateRemove(view: testView, description: "Completion remove loading indicator with info")
     }
     
     func validateUpdateLoadingIndicator(view: UIView, description: String) {
-        let asyncExpectation = expectationWithDescription(description)
-        runWithDelay(3, closure: { _ in
-            self.validateShow(view)
-            self.validateLoadIndicator(view, informationText: self.updatedTest)
-            asyncExpectation.fulfill()
-        })
-        self.waitForExpectationsWithTimeout(8) { error in
+        let asyncExpectation = expectation(description: description)
+        
+        DispatchQueue.main.asyncAfter(deadline: .now() + 3, execute: {
+            
+            self.validateShow(view: view)
+            self.validateLoadIndicator(view: view, informationText: self.updatedTest)
+            asyncExpectation.fulfill()
+            
+        })
+        
+        self.waitForExpectations(timeout: 8) { error in
             XCTAssertNil(error, "A error while updating HUD")
         }
     }

    // MARK: - Validations
    
    func validateRemove(view: UIView, description: String) {
        let asyncExpectation = expectationWithDescription(description)
        APESuperHUD.removeHUD(animated: true, presentingView: view, completion: { _ in
            asyncExpectation.fulfill()
        })
        self.waitForExpectationsWithTimeout(8) { error in
            print(description)
            XCTAssertNil(error, "A error while removing HUD")
            if self.hudViewExists(view) {
                XCTFail("HUD view did not get removed.")
            }
        }
    }
    
    func validateLoadIndicator(view: UIView, informationText: String) {
        let hudView = self.getHudView(view)
        XCTAssertEqual(hudView?.informationLabel.text, informationText)
        XCTAssertEqual(hudView?.loadingActivityIndicator.hidden, false)
        XCTAssertEqual(hudView?.loadingActivityIndicator.isAnimating(), true)
        XCTAssertEqual(hudView?.iconImageView.alpha, 0.0)
        XCTAssertEqual(hudView?.iconImageView.image, nil)
    }
    
    func validateMessage(view: UIView, informationText: String) {
        let hudView = getHudView(view)
        XCTAssertEqual(hudView?.informationLabel.text, informationText)
        XCTAssertEqual(hudView?.loadingActivityIndicator.isAnimating(), false)
        XCTAssertEqual(hudView?.iconImageView.alpha, 1.0)
        XCTAssertNotEqual(hudView?.iconImageView.image, nil)
    }
    
    func validateShow(view: UIView) {
        if !hudViewExists(view) {
            XCTFail("No HUD view was added to the view.")
        }
    }

        
        // Test show
        APESuperHUD.showOrUpdateHUD(icon: .HappyFace, message: originalText, presentingView: testView, completion: nil)
        validateShow(view: testView)
        validateMessage(view: testView, informationText: originalText)
        
        // Test update
        APESuperHUD.showOrUpdateHUD(icon: .CheckMark, message: updatedTest, presentingView: testView, completion: nil)
        let asyncExpectation = expectation(description: "Delay update message with default icon")
        
        DispatchQueue.main.asyncAfter(deadline: .now() + 1, execute: {
            
            self.validateShow(view: testView)
            self.validateMessage(view: testView, informationText: self.updatedTest)
            asyncExpectation.fulfill()

        })
        
        self.waitForExpectations(timeout: 8) { error in
            XCTAssertNil(error, "A error while updating HUD")
        }
    }
