diff --git a/microsoft-ajax/microsoft.ajax-tests.ts b/microsoft-ajax/microsoft.ajax-tests.ts index 15b52ffcf2..9e54d0c147 100644 --- a/microsoft-ajax/microsoft.ajax-tests.ts +++ b/microsoft-ajax/microsoft.ajax-tests.ts @@ -4,231 +4,371 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped /// -//#region Global Namespace Tests +function GlobalNamespace_Tests() { -var arrayVar = new Array("Saturn", "Mars", "Jupiter"); + var arrayVar = new Array("Saturn", "Mars", "Jupiter"); -//#endregion - -//#region Global Shortcut Methods - -$addHandler($get("Button1"), "click", () => { }); -$addHandlers($get("Button1"), {}); -$removeHandler($get("Button1"), "click", () => { }); -$find('MyComponent'); -$find('MyComponent', $find('#test')); - -//#endregion - -//#region Sys.Application Tests - -var component = new Sys.Component(); -var element = document.getElementById("#test"); -var id = "#test"; -var propertyName = "test"; -var parent = component; -var registerObject = new Object(); - -function loadHandler() { } -function initHandler() { } -function navigateHandler() { } -function unloadHandler() { } - -Sys.Application.add_load(loadHandler); -Sys.Application.remove_load(loadHandler); -Sys.Application.add_init(initHandler); -Sys.Application.remove_init(initHandler); -Sys.Application.add_navigate(navigateHandler); -Sys.Application.remove_navigate(navigateHandler); -Sys.Application.add_unload(unloadHandler); -Sys.Application.remove_unload(unloadHandler); -Sys.Application.addComponent(component); -Sys.Application.addHistoryPoint("state", "title"); -Sys.Application.beginCreateComponents(); -Sys.Application.beginUpdate(); -Sys.Application.dispose(); -Sys.Application.disposeElement(element, false); -Sys.Application.endCreateComponents(); -Sys.Application.endUpdate(); -Sys.Application.findComponent(id, parent); -Sys.Application.findComponent(id); -$find(id, parent); - -var componentArray = Sys.Application.getComponents(); -for (var i = 0; i < componentArray.length; i++) { - var id = componentArray[i].get_id(); + $addHandler($get("Button1"), "click", () => { }); + $addHandlers($get("Button1"), {}); + $removeHandler($get("Button1"), "click", () => { }); + $find('MyComponent'); + $find('MyComponent', $find('#test')); } -Sys.Application.initialize(); -Sys.Application.notifyScriptLoaded(); -Sys.Application.raiseLoad(); -Sys.Application.raisePropertyChanged(propertyName); -Sys.Application.registerDisposableObject(registerObject); -Sys.Application.removeComponent(component); -Sys.Application.unregisterDisposableObject(registerObject); -Sys.Application.endUpdate(); -Sys.Application.get_enableHistory(); -Sys.Application.set_enableHistory(true); -Sys.Application.get_isCreatingComponents(); -Sys.Application.get_isDisposing(); - -//#endregion - -//#region Sys.ApplicationLoadEventArgs Tests - -var a = new Sys.ApplicationLoadEventArgs(new Array(), true); - -var components = a.get_components(); -var isPartialReload = a.get_isPartialLoad(); - -//#endregion - -//#region Sys.Browser Tests - -var browser = Sys.Browser(); - -//#endregion - -//#region Sys.CancelEventArgs Tests - -var args = new Sys.CancelEventArgs(); - -var divElem = 'AlertDiv'; -var messageElem = 'AlertMessage'; - -Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus); - -function CheckStatus(sender, args) { - - var prm = Sys.WebForms.PageRequestManager.getInstance(); - - if (prm.get_isInAsyncPostBack() && args.get_postBackElement().id == 'CancelRefresh') { - prm.abortPostBack(); +function BaseClassExtensions_Function_Tests() { + + /** Sample code from http://msdn.microsoft.com/en-us/library/dd409287(v=vs.100).aspx */ + var createDelegateTest = function () { + var context = ""; + var method: MicrosoftAjaxBaseTypeExtensions.Function; + var a = (Function).createCallback(method, context); } - else if (prm.get_isInAsyncPostBack() && args.get_postBackElement().id == 'RefreshButton') { - - args.set_cancel(true); - ActivateAlertDiv('visible', 'Still working on previous request.'); + + /** Sample code from http://msdn.microsoft.com/en-us/library/dd393582(v=vs.100).aspx */ + var createDelegateTest = function () { + var instance = this; + var method: MicrosoftAjaxBaseTypeExtensions.Function; + var a = (Function).createDelegate(instance, method); } - else if (!prm.get_isInAsyncPostBack() && args.get_postBackElement().id == 'RefreshButton') { - ActivateAlertDiv('visible', 'Processing....'); + + /** Sample code from http://msdn.microsoft.com/en-us/library/dd393712(v=vs.100).aspx */ + var validateParametersTest = function () { + var arguments = ['test1', 'test2']; + var insert = function Array$insert(array, index, item) { + var e = (Function).validateParameters(arguments, [ + { name: "array", type: Array, elementMayBeNull: true }, + { name: "index", mayBeNull: true }, + { name: "item", mayBeNull: true } + ]); + if (e) throw e; + } + }; +} + + +function Sys_Application_Tests() { + + var component = new Sys.Component(); + var element = document.getElementById("#test"); + var id = "#test"; + var propertyName = "test"; + var registerObject = new Object(); + + function loadHandler() { } + function initHandler() { } + function navigateHandler() { } + function unloadHandler() { } + + Sys.Application.add_load(loadHandler); + Sys.Application.remove_load(loadHandler); + Sys.Application.add_init(initHandler); + Sys.Application.remove_init(initHandler); + Sys.Application.add_navigate(navigateHandler); + Sys.Application.remove_navigate(navigateHandler); + Sys.Application.add_unload(unloadHandler); + Sys.Application.remove_unload(unloadHandler); + Sys.Application.addComponent(component); + Sys.Application.addHistoryPoint("state", "title"); + Sys.Application.beginCreateComponents(); + Sys.Application.beginUpdate(); + Sys.Application.dispose(); + Sys.Application.disposeElement(element, false); + Sys.Application.endCreateComponents(); + Sys.Application.endUpdate(); + Sys.Application.findComponent(id, element); + Sys.Application.findComponent(id, component); + Sys.Application.findComponent(id); + $find(id, element); + + var componentArray = Sys.Application.getComponents(); + for (var i = 0; i < componentArray.length; i++) { + var cid = componentArray[i].get_id(); + } + + Sys.Application.initialize(); + Sys.Application.notifyScriptLoaded(); + Sys.Application.raiseLoad(); + Sys.Application.raisePropertyChanged(propertyName); + Sys.Application.registerDisposableObject(registerObject); + Sys.Application.removeComponent(component); + Sys.Application.unregisterDisposableObject(registerObject); + Sys.Application.endUpdate(); + Sys.Application.get_enableHistory(); + Sys.Application.set_enableHistory(true); + Sys.Application.get_isCreatingComponents(); + Sys.Application.get_isDisposing(); +} + + +function Sys_Application_LoadEventArgs_Tests() { + var a = new Sys.ApplicationLoadEventArgs(new Array(), true); + + var components = a.get_components(); + var isPartialReload = a.get_isPartialLoad(); +} + + +function Sys_Browser_Tests() { + var browser = Sys.Browser(); +} + + + +function Sys_CancelEventArgs_Tests() { + + var args = new Sys.CancelEventArgs(); + + var divElem = 'AlertDiv'; + var messageElem = 'AlertMessage'; + + Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus); + + var CheckStatus = function(sender, args) { + + var prm = Sys.WebForms.PageRequestManager.getInstance(); + + if (prm.get_isInAsyncPostBack() && args.get_postBackElement().id == 'CancelRefresh') { + prm.abortPostBack(); + } + else if (prm.get_isInAsyncPostBack() && args.get_postBackElement().id == 'RefreshButton') { + + args.set_cancel(true); + ActivateAlertDiv('visible', 'Still working on previous request.'); + } + else if (!prm.get_isInAsyncPostBack() && args.get_postBackElement().id == 'RefreshButton') { + ActivateAlertDiv('visible', 'Processing....'); + } + } + + var ActivateAlertDiv = function(visString, msg) { + var adiv = $get(divElem); + var aspan = $get(messageElem); + adiv.style.visibility = visString; + aspan.innerHTML = msg; } } -function ActivateAlertDiv(visString, msg) { - var adiv = $get(divElem); - var aspan = $get(messageElem); - adiv.style.visibility = visString; - aspan.innerHTML = msg; + +function Sys_CollectionChange_Tests() { + var action = Sys.NotifyCollectionChangedAction.add; + var newItems = []; + var newStartingIndex = 1; + var oldItems = []; + var oldStartingIndex = 2; + + var MyCChg = new Sys.CollectionChange(action, newItems, newStartingIndex, oldItems, oldStartingIndex); + + action = MyCChg.action; + newItems = MyCChg.newItems; + newStartingIndex = MyCChg.newStartingIndex; + oldItems = MyCChg.oldItems; + oldStartingIndex = MyCChg.oldStartingIndex; } -//#endregion -//#region Sys.CollectionChange Tests - -var action = Sys.NotifyCollectionChangedAction.add; -var newItems = []; -var newStartingIndex = 1; -var oldItems = []; -var oldStartingIndex = 2; - -var MyCChg = new Sys.CollectionChange(action, newItems, newStartingIndex, oldItems, oldStartingIndex); - -action = MyCChg.action; -newItems = MyCChg.newItems; -newStartingIndex = MyCChg.newStartingIndex; -oldItems = MyCChg.oldItems; -oldStartingIndex = MyCChg.oldStartingIndex; - -//#endregion - -//#region Sys.CommandEventArg Tests - -var commandName = "command name"; -var commandArgument = "command argument"; -var commandSource = "command source"; -var argsObj = new Sys.CommandEventArgs(commandName, commandArgument, commandSource); -var empty = argsObj.Empty; -commandName = argsObj.get_commandName(); -commandArgument = argsObj.get_commandArgument(); - -//#endregion - -//#region Sys.Component Tests - -var aComponent = new Sys.Component(); - -aComponent.add_disposing(() => { }); -aComponent.remove_disposing(() => { }); - -aComponent.add_propertyChanged(() => { }); -aComponent.remove_propertyChanged(() => { }); - -aComponent.beginUpdate(); - -aComponent.create(type, properties, events, references, element); - -aComponent.dispose(); - -aComponent.endUpdate(); - -aComponent.initialize(); - -aComponent.raisePropertyChanged("propertyName"); - -aComponent.updated(); - -//#endregion - -//#region Sys.CultureInfo Tests - -var currentCultureInfoObj = Sys.CultureInfo.CurrentCulture; -var dtfCCObject = currentCultureInfoObj.dateTimeFormat; -var invariantCultureInfoObj = Sys.CultureInfo.InvariantCulture; -var dtfICObject = invariantCultureInfoObj.dateTimeFormat; - -var newCulture = new Sys.CultureInfo("name", "numberFormat", "dateTimeFormat"); - -var format = newCulture.dateTimeFormat; -var name = newCulture.name; -var numberFormat = newCulture.numberFormat; - -//#endregion - -//#region ASP.NET Types Tests - -Type.registerNamespace("Samples"); - -var Samples; -Samples.A = function () { } -var a = Samples.A; -a.registerClass('Samples.A'); - - -Samples.B = function () { } -var b = Samples.B; -b.registerClass('Samples.B'); - -Samples.C = function () { - var c = Samples.C; - c.initializeBase(this); +function Sys_CommandEventArg_Tests() { + var commandName = "command name"; + var commandArgument = "command argument"; + var commandSource = "command source"; + var argsObj = new Sys.CommandEventArgs(commandName, commandArgument, commandSource); + var empty = argsObj.Empty; + commandName = argsObj.get_commandName(); + commandArgument = argsObj.get_commandArgument(); } -Samples.C.registerClass('Samples.C', Samples.A, Samples.B); -var isDerived; -isDerived = Samples.B.inheritsFrom(Samples.A); -// Output: "false". -alert(isDerived); +function Sys_Component_Tests() { + var aComponent = new Sys.Component(); + var properties: any; + var events: any; + var references: any; + var element: HTMLElement; + var handler: Function; + var MyControl = new Type; + + aComponent.add_disposing(() => { }); + aComponent.remove_disposing(() => { }); -isDerived = Samples.C.inheritsFrom(Samples.A); -// Output: "true". -alert(isDerived); + aComponent.add_propertyChanged(() => { }); + aComponent.remove_propertyChanged(() => { }); -var implementsInterface; -implementsInterface = Samples.C.implementsInterface(Samples.B); -// Output: "true". -alert(implementsInterface); + aComponent.beginUpdate(); -//#endregion + $create(MyControl, { id: 'c1', visible: true }, { click: handler }, null, $get('button1')); + aComponent.dispose(); + + aComponent.endUpdate(); + + aComponent.initialize(); + + aComponent.raisePropertyChanged("propertyName"); + + aComponent.updated(); +} + +function Sys_CultureInfo_Tests() { + var currentCultureInfoObj = Sys.CultureInfo.CurrentCulture; + var dtfCCObject = currentCultureInfoObj.dateTimeFormat; + var invariantCultureInfoObj = Sys.CultureInfo.InvariantCulture; + var dtfICObject = invariantCultureInfoObj.dateTimeFormat; + + var newCulture = new Sys.CultureInfo("name", "numberFormat", "dateTimeFormat"); + + var format = newCulture.dateTimeFormat; + var name = newCulture.name; + var numberFormat = newCulture.numberFormat; +} + + +function AspNetTypes_Tests() { + Type.registerNamespace("Samples"); + + + var Samples; + Samples.A = function () { }; + var a = Samples.A; + a.registerClass('Samples.A'); + + + Samples.B = function () { }; + var b = Samples.B; + b.registerClass('Samples.B'); + + Samples.C = function () { + var c = Samples.C; + c.initializeBase(this); + }; + + Samples.C.registerClass('Samples.C', Samples.A, Samples.B); + + var isDerived; + isDerived = Samples.B.inheritsFrom(Samples.A); + // Output: "false". + alert(isDerived); + + isDerived = Samples.C.inheritsFrom(Samples.A); + // Output: "true". + alert(isDerived); + + var implementsInterface; + implementsInterface = Samples.C.implementsInterface(Samples.B); + // Output: "true". + alert(implementsInterface); +} + + + +/** Sample code from http://msdn.microsoft.com/en-us/library/bb386520(v=vs.100).aspx */ +function CreatingCustomNonVisualClientComponentsTests() { + var Demo: any; + Type.registerNamespace("Demo"); + + Demo.Timer = function () { + Demo.Timer.initializeBase(this); + + this._interval = 1000; + this._enabled = false; + this._timer = null; + } + + Demo.Timer.prototype = { + // OK to declare value types in the prototype + + + get_interval: function () { + /// Interval in milliseconds + return this._interval; + }, + set_interval: function (value) { + if (this._interval !== value) { + this._interval = value; + this.raisePropertyChanged('interval'); + + if (!this.get_isUpdating() && (this._timer !== null)) { + this._restartTimer(); + } + } + }, + + get_enabled: function () { + /// True if timer is enabled, false if disabled. + return this._enabled; + }, + set_enabled: function (value) { + if (value !== this.get_enabled()) { + this._enabled = value; + this.raisePropertyChanged('enabled'); + if (!this.get_isUpdating()) { + if (value) { + this._startTimer(); + } + else { + this._stopTimer(); + } + } + } + }, + + // events + add_tick: function (handler) { + /// Adds a event handler for the tick event. + /// The handler to add to the event. + this.get_events().addHandler("tick", handler); + }, + remove_tick: function (handler) { + /// Removes a event handler for the tick event. + /// The handler to remove from the event. + this.get_events().removeHandler("tick", handler); + }, + + dispose: function () { + // call set_enabled so the property changed event fires, for potentially attached listeners. + this.set_enabled(false); + // make sure it stopped so we aren't called after disposal + this._stopTimer(); + // be sure to call base.dispose() + Demo.Timer.callBaseMethod(this, 'dispose'); + }, + + updated: function () { + Demo.Timer.callBaseMethod(this, 'updated'); + // called after batch updates, this.beginUpdate(), this.endUpdate(). + if (this._enabled) { + this._restartTimer(); + } + }, + + _timerCallback: function () { + var handler = this.get_events().getHandler("tick"); + if (handler) { + handler(this, Sys.EventArgs.Empty); + } + }, + + _restartTimer: function () { + this._stopTimer(); + this._startTimer(); + }, + + _startTimer: function () { + // save timer cookie for removal later + this._timer = window.setInterval((Function).createDelegate(this, this._timerCallback), this._interval); + }, + + _stopTimer: function () { + if (this._timer) { + window.clearInterval(this._timer); + this._timer = null; + } + } + } + + Demo.Timer.registerClass('Demo.Timer', Sys.Component); + + // Since this script is not loaded by System.Web.Handlers.ScriptResourceHandler + // invoke Sys.Application.notifyScriptLoaded to notify ScriptManager + // that this is the end of the script. + if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded(); + +} \ No newline at end of file