describe("hx-swap-oob attribute", function () { beforeEach(function () { this.server = makeServer(); clearWorkArea(); }); afterEach(function () { this.server.restore(); clearWorkArea(); }); it('handles basic response properly', function () { this.server.respondWith("GET", "/test", "Clicked
Swapped
"); var div = make('
click me
'); make('
'); div.click(); this.server.respond(); div.innerHTML.should.equal("Clicked"); byId("d1").innerHTML.should.equal("Swapped"); }) it('handles more than one oob swap properly', function () { this.server.respondWith("GET", "/test", "Clicked
Swapped1
Swapped2
"); var div = make('
click me
'); make('
'); make('
'); div.click(); this.server.respond(); div.innerHTML.should.equal("Clicked"); byId("d1").innerHTML.should.equal("Swapped1"); byId("d2").innerHTML.should.equal("Swapped2"); }) it('handles no id match properly', function () { this.server.respondWith("GET", "/test", "Clicked
Swapped
"); var div = make('
click me
'); div.click(); this.server.respond(); div.innerText.should.equal("Clicked"); }) it('handles basic response properly w/ data-* prefix', function () { this.server.respondWith("GET", "/test", "Clicked
Swapped
"); var div = make('
click me
'); make('
'); div.click(); this.server.respond(); div.innerHTML.should.equal("Clicked"); byId("d1").innerHTML.should.equal("Swapped"); }) it('handles outerHTML response properly', function () { this.server.respondWith("GET", "/test", "Clicked
Swapped
"); var div = make('
click me
'); make('
'); div.click(); this.server.respond(); byId("d1").getAttribute("foo").should.equal("bar"); div.innerHTML.should.equal("Clicked"); byId("d1").innerHTML.should.equal("Swapped"); }) it('handles innerHTML response properly', function () { this.server.respondWith("GET", "/test", "Clicked
Swapped
"); var div = make('
click me
'); make('
'); div.click(); this.server.respond(); should.equal(byId("d1").getAttribute("foo"), null); div.innerHTML.should.equal("Clicked"); byId("d1").innerHTML.should.equal("Swapped"); }) it('oob swaps can be nested in content', function () { this.server.respondWith("GET", "/test", "
Clicked
Swapped
"); var div = make('
click me
'); make('
'); div.click(); this.server.respond(); should.equal(byId("d1").getAttribute("foo"), null); div.innerHTML.should.equal("
Clicked
"); byId("d1").innerHTML.should.equal("Swapped"); }) it('oob swaps can use selectors to match up', function () { this.server.respondWith("GET", "/test", "
Clicked
Swapped
"); var div = make('
click me
'); make('
'); div.click(); this.server.respond(); should.equal(byId("d1").getAttribute("foo"), "bar"); div.innerHTML.should.equal("
Clicked
"); byId("d1").innerHTML.should.equal("Swapped"); }) it('swaps into all targets that match the selector (innerHTML)', function () { this.server.respondWith("GET", "/test", "
Clicked
Swapped
"); var div = make('
click me
'); make('
No swap
'); make('
Not swapped
'); make('
Not swapped
'); div.click(); this.server.respond(); byId("d1").innerHTML.should.equal("No swap"); byId("d2").innerHTML.should.equal("Swapped"); byId("d3").innerHTML.should.equal("Swapped"); }) it('swaps into all targets that match the selector (outerHTML)', function () { var oobSwapContent = '
Swapped
'; this.server.respondWith("GET", "/test", "
Clicked
" + oobSwapContent); var div = make('
click me
'); make('
No swap
'); make('
Not swapped
'); make('
Not swapped
'); div.click(); this.server.respond(); byId("d1").innerHTML.should.equal("
No swap
"); byId("d2").innerHTML.should.equal(oobSwapContent); byId("d3").innerHTML.should.equal(oobSwapContent); }) it('oob swap delete works properly', function() { this.server.respondWith("GET", "/test", '
'); var div = make('
Foo
') div.click(); this.server.respond(); should.equal(byId("d1"), null); }); });