diff options
author | Vladislav Zarakovsky <vlad.zar@gmail.com> | 2015-11-23 21:19:32 +0300 |
---|---|---|
committer | Vladislav Zarakovsky <vlad.zar@gmail.com> | 2015-11-24 15:30:30 +0300 |
commit | 6bee532d6057f6ea33ccf7dcabb647ec905e56ed (patch) | |
tree | 6e1829fca144d93a7f9317dc7b4c37ca29c94e76 | |
parent | 267d2b8bb9bca15669893b5f6b492bb3c474df08 (diff) | |
download | awesomplete-6bee532d6057f6ea33ccf7dcabb647ec905e56ed.zip awesomplete-6bee532d6057f6ea33ccf7dcabb647ec905e56ed.tar.gz awesomplete-6bee532d6057f6ea33ccf7dcabb647ec905e56ed.tar.bz2 |
Html modifications tests
-rw-r--r-- | test/fixtures/plain.html | 1 | ||||
-rw-r--r-- | test/init/htmlSpec.js | 60 |
2 files changed, 61 insertions, 0 deletions
diff --git a/test/fixtures/plain.html b/test/fixtures/plain.html new file mode 100644 index 0000000..9869bcc --- /dev/null +++ b/test/fixtures/plain.html @@ -0,0 +1 @@ +<input id="plain" /> diff --git a/test/init/htmlSpec.js b/test/init/htmlSpec.js new file mode 100644 index 0000000..3e0b9c1 --- /dev/null +++ b/test/init/htmlSpec.js @@ -0,0 +1,60 @@ +describe("Html modifications", function () { + + $.fixture("plain"); + + subject(function () { return new Awesomplete("#plain") }); + + it("binds to correct input", function () { + expect(this.subject.input instanceof HTMLElement).toBe(true); + expect(this.subject.input.id).toBe("plain"); + }); + + it("turns native autocompleter off", function () { + expect(this.subject.input.getAttribute("autocomplete")).toBe("off"); + }); + + describe("HTML tweaks", function () { + it("creates container", function () { + expect(this.subject.container instanceof HTMLElement).toBe(true); + expect(this.subject.container.className).toBe("awesomplete"); + }); + + it("places input inside container", function () { + expect(this.subject.input.parentNode).toBe(this.subject.container); + }); + + it("creates list", function () { + expect(this.subject.ul instanceof HTMLElement).toBe(true); + expect(this.subject.ul.tagName).toBe("UL"); + }); + + it("places list inside container", function () { + expect(this.subject.ul.parentNode).toBe(this.subject.container); + }); + + it("hides list", function () { + expect(this.subject.ul.hasAttribute("hidden")).toBe(true); + }); + }); + + describe("ARIA support", function () { + it("makes input accessible", function () { + expect(this.subject.input.getAttribute("aria-autocomplete")).toBe("list"); + }); + + it("creates status", function () { + expect(this.subject.status instanceof HTMLElement).toBe(true); + expect(this.subject.status.getAttribute("role")).toBe("status"); + expect(this.subject.status.getAttribute("aria-live")).toBe("assertive"); + expect(this.subject.status.getAttribute("aria-relevant")).toBe("additions"); + }); + + it("puts status inside container", function () { + expect(this.subject.status.parentNode).toBe(this.subject.container); + }); + + it("hides status", function () { + expect(this.subject.status.className).toBe("visually-hidden"); + }); + }); +}); |