function checkRendering(assert, aControls, sTargetId, bExpectExisting, fnActionCallBack, sOldParentId) {
		return new Promise(function(done) {
			var iBeforeCounter = 0;
			var iAfterCounter = 0;

			var fBefore = function() {
				iBeforeCounter++;
			};

			var fAfter = function() {
				iAfterCounter++;
			};

			for (var i = 0; i < aControls.length; i++) {
				aControls[i].doBeforeRendering = fBefore;
				aControls[i].doAfterRendering = fAfter;
			}

			checkControlsInDom(assert, aControls, sOldParentId ? sOldParentId : sTargetId, bExpectExisting);

			fnActionCallBack(jQueryById(sTargetId).get(0), aControls);

			assert.equal(iBeforeCounter, aControls.length, "onBeforeRendering should be called");

			checkControlsInDom(assert, aControls, sTargetId, true);

			if (Device.browser.safari) {
				//in safari async because onAfterRendering ist called with delay
				var delayedCall = function() {
					assert.equal(iAfterCounter, aControls.length, "onAfterRendering should be called");
					for (var i = 0; i < aControls.length; i++) {
						aControls[i].doBeforeRendering = null;
						aControls[i].doAfterRendering = null;
					}
					done();
				};
				setTimeout(delayedCall, 500);
			} else {
				assert.equal(iAfterCounter, aControls.length, "onAfterRendering should be called");
				for (var i = 0; i < aControls.length; i++) {
					aControls[i].doBeforeRendering = null;
					aControls[i].doAfterRendering = null;
				}
				done();
			}

		});

	}
@deprecated As of 1.92 (String based rendering is replaced with the Semantic Rendering)