From 9f07758e1144b49ca2fb8bbbc46e6ffa20eeb0e5 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Sat, 13 Oct 2012 19:43:39 +0300 Subject: [PATCH] History.js definitions and tests added --- Definitions/history.d.ts | 25 +++++++++++++++++++++++++ Tests/history-tests.ts | 17 +++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 Definitions/history.d.ts create mode 100644 Tests/history-tests.ts diff --git a/Definitions/history.d.ts b/Definitions/history.d.ts new file mode 100644 index 0000000000..623dc6c6d6 --- /dev/null +++ b/Definitions/history.d.ts @@ -0,0 +1,25 @@ +// Type definitions for History.js +// Project: https://github.com/balupton/History.js +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface HistoryAdapter { + bind(element, event, callback); + trigger(element, event); + onDomLoad(callback); +} + +interface HistoryStatic { + enabled: bool; + pushState(data, title, url); + replaceState(data, title, url); + getState(); + getHash(); + Adapter: HistoryAdapter; + back(); + forward(); + go(X); + log(...messages: any[]); + debug(...messages: any[]); +} + +declare var History: HistoryStatic; diff --git a/Tests/history-tests.ts b/Tests/history-tests.ts new file mode 100644 index 0000000000..4691e3be01 --- /dev/null +++ b/Tests/history-tests.ts @@ -0,0 +1,17 @@ +/// + +if (!History.enabled) { + return false; +} + +History.Adapter.bind(window, 'statechange', () => { + var State = History.getState(); + History.log(State.data, State.title, State.url); +}); + +History.pushState({ state: 1 }, "State 1", "?state=1"); +History.pushState({ state: 2 }, "State 2", "?state=2"); +History.replaceState({ state: 3 }, "State 3", "?state=3"); +History.pushState(null, null, "?state=4"); +History.back(); +History.go(2); \ No newline at end of file