PageRenderTime 68ms CodeModel.GetById 30ms RepoModel.GetById 1ms app.codeStats 0ms

/CHANGELOG.md

http://github.com/assaf/zombie
Markdown | 2002 lines | 1124 code | 878 blank | 0 comment | 0 complexity | fe6e204f2861b4c5a83ef8ffbe8cf7b8 MD5 | raw file
  1. ## Version 6.1.4 2018-11-27
  2. Updated dependencies
  3. 747 passing (23s)
  4. 12 pending
  5. ## Version 6.1.3 2018-08-11
  6. Upgraded to JSDom 11.12.0 #1168
  7. 747 passing (20s)
  8. 12 pending
  9. ## Version 6.1.2 2018-04-29
  10. Tested with Node 10.
  11. CORS and Access-Control-Allow-Methods #1161
  12. 747 passing (19s)
  13. 12 pending
  14. ## Version 6.1.1 2018-04-07
  15. Fixes btoa and atob function to match browser's spec #1160
  16. 742 passing (20s)
  17. 12 pending
  18. ## Version 6.1.0 2018-04-02
  19. Documenting browser.evaluate #1014
  20. Fix potential memory leak when deleting all cookies #1016
  21. Fetch HeadersInit as an Array fixed and tests #1037
  22. Added ability to disable html5 history using history5 option #359
  23. Clear cookie header on redirect #1038
  24. Reorder events in selectOption - causes a bad interaction in some 2-way binding scenarios #1023
  25. Inline scripts with invalid type attribute get executed #978
  26. 742 passing (20s)
  27. 12 pending
  28. ## Version 6.0.0 2018-04-02
  29. Zombie 6.0.0 is tested to run on Node 8.10 and Node 9.8. We no longer support
  30. Node 4/6.
  31. Upgraded from JSDOM 7.2.2 to JSDOM 11.5.1. Tons on new stuff, see:
  32. https://github.com/jsdom/jsdom/blob/master/Changelog.md#1151
  33. Various browser methods, like focus, fill, etc now take a callback, or return a
  34. promise.
  35. Resolved issue with about:blank pages.
  36. 737 passing (20s)
  37. 12 pending
  38. ## Version 5.0.8 2018-02-22
  39. FIXED rerouting in Node 8
  40. ## Version 5.0.7 2017-06-26
  41. FIXED `browser.fill` with React was not working
  42. 732 passing (28s)
  43. 12 pending
  44. ## Version 5.0.6 2017-06-26
  45. ADDED support for [cancelAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/Window/cancelAnimationFrame)
  46. ADDED support for [document.hasFocus](https://developer.mozilla.org/en-US/docs/Web/API/Document/hasFocus)
  47. 732 passing (22s)
  48. 12 pending
  49. ## Version 5.0.5 2016-11-22
  50. CHANGED Support aborting XMLHttpRequests in the DONE state
  51. 731 passing (22s)
  52. 12 pending
  53. ## Version 5.0.4 2016-11-09
  54. CHANGED Honor timeout in refresh meta tag.
  55. 727 passing (17s)
  56. 12 pending
  57. ## Version 5.0.3 2016-11-09
  58. CHANGED button() to find input elements with type 'reset' and 'button' in
  59. addition to 'submit'
  60. 727 passing (17s)
  61. 12 pending
  62. ## Version 5.0.2 2016-11-08
  63. ADDED implementations of offsetWidth, offsetHeight and fixed getClientRects
  64. so that jquery will detect reliableHiddenOffsets as true
  65. 726 passing (17s)
  66. 12 pending
  67. ## Version 5.0.1 2016-11-04
  68. ADDED stub implementation of HTMLElement.getClientRects() to support jquery 1.12 implementation of width()
  69. 701 passing (16s)
  70. 12 pending
  71. ## Version 5.0.0 2016-11-03
  72. Bumping the major version because jsdom is such a core component to zombie
  73. that major updates to it have the impact to show as breaking changes to
  74. zombie users.
  75. UPDATED jsdom to ^7
  76. 701 passing (16s)
  77. 12 pending
  78. ## Version 4.3.0 2016-10-24
  79. ADDED support for node v6
  80. CHANGED updated to use ws 1.x
  81. 701 passing (14s)
  82. 12 pending
  83. ## Version 4.2.1 2015-10-28
  84. FIXED missing lib directory
  85. 697 passing (27s)
  86. 12 pending
  87. ## Version 4.2.0 2015-10-28
  88. CHANGED updated to use Bluebird 3.x
  89. 697 passing (23s)
  90. 12 pending
  91. ## Version 4.1.0 2015-08-21
  92. FIXED using properties instead of attributes whenever possible
  93. FIXED storage should use Map instead of object literal
  94. 697 passing (23s)
  95. 12 pending
  96. ## Version 4.0.13 2015-06-25
  97. FIXED Multipart submission breaks for simple values
  98. 697 passing (24s)
  99. 12 pending
  100. ## Version 4.0.12 2015-06-23
  101. Work around some Babel.js bugs.
  102. 697 passing (24s)
  103. 12 pending
  104. ## Version 4.0.11 2015-06-12
  105. Upgraded to JSDOM 5.3.0.
  106. 697 passing (24s)
  107. 12 pending
  108. ## Version 4.0.10 2015-04-29
  109. Upgraded to JSDOM 5.2.0 and tough-cookie 1.1.0
  110. 694 passing (22s)
  111. 12 pending
  112. ## Version 4.0.9 2015-04-25
  113. Upgraded to JSDOM 5.1.0
  114. FIXED assertion errors not propagating out of wait callback
  115. 694 passing (22s)
  116. 12 pending
  117. ## Version 4.0.8 2015-04-19
  118. Upgraded to JSDOM 5.0.1
  119. ADDED expose Browser.Request/Response/Headers
  120. CHANGED use regexp instead of startsWith
  121. 694 passing (22s)
  122. 12 pending
  123. ## Version 4.0.7 2015-04-10
  124. Version 4.0 requires io.js, see:
  125. https://github.com/tmpvar/jsdom/blob/master/Changelog.md#400
  126. ADDED preliminary support for the Fetch API (https://fetch.spec.whatwg.org/)
  127. ADDED you can use the `browser.fetch` to retrieve any resources, using the
  128. cookies, pipeline and all other browser settings
  129. CHANGED upgraded to JSDOM 4.1
  130. CHANGED use `browser.status` instead of `browser.statusCode` (HTML APIs use
  131. `status` and `statusText`)
  132. CHANGED `browser.resources` is now just an array of all resources requested when
  133. processing the currently open window. Resources no longer shared by all
  134. windows, and other features (pipeline configuration, fetch resources) moved
  135. elsewhere.
  136. CHANGED separated pipeline from resources. Use `browser.pipeline.addHandler` to
  137. add request/response handler to the browser instance, or `Pipeline.addHandler`
  138. to add handler to all new instances.
  139. CHANGED pipeline API changed as well. Request handler called with browser
  140. instance and Fetch `Request` object, can return null or a Fetch `Response`
  141. object. Response handler called with browser instance, request and response
  142. object, should return same or new response object. Handlers no longer using
  143. callbacks, if you need asynchronous behavior, return a promise.
  144. FIXED empty `cookie` and `referer` header no longer sent #881
  145. FIXED added `navigator.appVersion` #885
  146. REMOVED `document.window`, use `document.defaultView` instead
  147. REMOVED `browser.close` confusing method name, use `browser.window.close` if you
  148. really need to close the window.
  149. 694 passing (21s)
  150. 12 pending
  151. ## Version 3.1.1 2015-03-26
  152. FIXED file URLs not resolving correctly #886 (Jeffrey Jagoda)
  153. ## Version 3.1.0 2015-03-15
  154. 3.1 is the first official release of Zombie 3.x. It is a major upgrade from
  155. 2.5, and as such has several breaking changes. Please check the list of changes
  156. below to learn what has changed.
  157. ADDED DOM URL class
  158. ADDED XHR events emitted to browser
  159. ADDED wait() ends with error if Browser cannot load all resources on the page
  160. (e.g. doesn't get to load scripts)
  161. ADDED submitting form using an image input will include coordinates #865 (Werner
  162. Beroux)
  163. REMOVED browser.fork no longer supported
  164. REMOVED browser.htmlParser option no longer supported, always using default
  165. browser (parser5)
  166. REMOVED Browser.visit(url, options) no longer changes instance options
  167. REMOVED resources.mock/fail/delay, use Nock instead
  168. REMOVED protocol and bcat, no tests
  169. REMOVED Browser.create
  170. REMOVED Browser.dns and Browser.ports, switching to different implementation
  171. CHANGED Browser.debug -> browser.debug (per instance)
  172. CHANGED browser.referer -> browser.referrer
  173. CHANGED Browser.default.<name> = <value> deprecated, use Browser.<name> = <value> instead
  174. CHANGED timeout event -> setTimeout, interval -> setInterval
  175. CHANGED removed onalert/onconfirm/onprompt, use browser.on('alert', fn) etc
  176. CHANGED credentials replaced with browser.on('authenticate', fn)
  177. CHANGED browser.wait() runs event loop so you can catch done/error events
  178. CHANGED event loop `done` event renamed to `idle`
  179. CHANGED upgraded to JSDOM 3.1, added io.js and Node 0.12 support
  180. CHANGED all dump() methods now accept output stream or output to stdout
  181. CHANGED XHR errors no longer stop the event loop
  182. If you are wondering what happened to 3.0, there were 16 test relases of 3.0
  183. leading up to 3.1. Test releases are tagged as `next` instead of `latest`. NPM
  184. defaults to showing and installing `latest versions, you have to explicitly
  185. instruct it to `install` next versions.
  186. 688 passing (22s)
  187. 12 pending
  188. ## Version 2.5.1 2014-12-08
  189. ADDED `waitForServer` to wait for a server-initiated event before running
  190. `wait` method. Accepts the same arguments as `wait`.
  191. Currently supports `EventSource` aka [Server-Sent
  192. Events](http://dev.w3.org/html5/eventsource/).
  193. CHANGED `load` is now asynchronous just like `wait`. Use a callback or promise
  194. before accessing the document.
  195. 703 passing (12s)
  196. 8 pending
  197. ## Version 2.5.0 2014-12-01
  198. ADDED support for navigator.mimeTypes
  199. CHANGED wait() returns a lazy promise
  200. Prior to this change, calling `wait()` without a callback would return a
  201. promise, which will resolve by running the event loop for completion, even if
  202. you don't provide any callbacks.
  203. This is not specifically a problem with `wait`, but with methods that end by
  204. calling `wait`, like `clickLink` and `pressButton`.
  205. After this change, `wait()` will do nothing, unless you either supply a
  206. callback, or use the promise by means of calling `then/catch/done` on it.
  207. You can achieve the old behavior by calling `browser.wait().done()`.
  208. REMOVED Passing an options object to browser.visit is deprecated and will be
  209. removed soon. Passing an options object to Browser.visit is still supported.
  210. UPGRADED to JSDOM 1.4.0
  211. 700 passing (12s)
  212. 8 pending
  213. ## Version 2.4.0 2014-11-27
  214. FIXED eliminated endless spinning of the event loop
  215. NOTE this may break your tests suite if you added an asynchronous event listener
  216. in your Node code but forgot to wait() for the event to fire. For example:
  217. https://github.com/assaf/zombie/commit/d83c901a07bd09cb9c583a57a0b4cd431bf71f8f#diff-cb54bacfa1b84057366b12e8b5c961d3L350
  218. 695 passing (10s)
  219. 8 pending
  220. ## Version 2.3.2 2014-11-26
  221. FIXED XHR status and response text in case of error #811
  222. FIXED XHR events for abort and timeout
  223. FIXED ReferenceError: id is not defined
  224. 695 passing
  225. 11 sec to complete
  226. ## Version 2.3.1 2014-11-26
  227. ADDED XHR now supports progress events
  228. 691 passing
  229. 11 sec to complete
  230. ## Version 2.3.0 2014-11-25
  231. ADDED requestAnimationFrame
  232. FIXED don't process responses to aborted XHR requests
  233. UPDATED to JSDOM 1.3.1
  234. 688 passing
  235. 11 sec to complete
  236. ## Version 2.2.1 2014-11-14
  237. FIXED request 2.48.0 leaks globals, reverting to 2.47.0
  238. 686 passing
  239. 11 sec to complete
  240. ## Version 2.2.0 2014-11-14
  241. ADDED window.location.origin #796
  242. FIXED updated to JSDOM 1.2.1
  243. FIXED browser.evaluate({throws error}) should throw an error #790
  244. FIXED changing location.hash should be synchronous #781
  245. FIXED DNS.lookup(null) should resolve to null IP #783
  246. FIXED Browser should show errors for resources that fail to load #794
  247. REMOVED no longer support cookie folding with comma #792
  248. 687 passing
  249. 11 sec to complete
  250. ## Version 2.1.1 2014-10-23
  251. FIXED pushState/replaceState should change history immediately #781
  252. 682 passing
  253. 10 sec to complete
  254. ## Version 2.1.0 2014-10-22
  255. ADDED browser.assert.link can use regular expression to match link URL #770
  256. ADDED window now has access to XPathResult and friends #762
  257. FIXED images seem to load twice #780
  258. 680 passing
  259. 10 sec to complete
  260. ## Version 2.0.8 2014-10-14
  261. FIXED bump to JSDOM 1.0.3 to fix cssstyle-browserify dependency
  262. FIXED console.debug fails when brower.silent = false
  263. 671 passing
  264. 10 sec to complete
  265. ## Version 2.0.7 2014-10-13
  266. FIXED csstyle bug: Cannot find module './properties'
  267. 671 passing
  268. 11 sec to complete
  269. ## Version 2.0.6 2014-10-11
  270. CHANGED Output from console.log() and friends goes to console unless
  271. `browser.silent = true`. You can also set it globally with
  272. `Browser.default.silent = true`. Console output always visible when debugging
  273. (`DEBUG=zombie`).
  274. ADDED documentation for debugging using `DEBUG=zombie` and `browser.silent`.
  275. 671 passing
  276. 11 sec to complete
  277. ## Version 2.0.5 2014-10-10
  278. **NOTE** This version introduces a bug from JSDOM, whereby resetting a form will
  279. not reset `<select>` elements correctly
  280. UPDATED to latest JSDOM
  281. FIXED Exceptions are being swallowed #761
  282. Minor other bug fixes
  283. 671 passing
  284. 11 sec to complete
  285. ## Version 2.0.4 2014-09-26
  286. FIXED browser will sometimes run code asynchronously outside a wait
  287. FIXED browser.wait should return a promise when called without open window #755
  288. FIXED complain when using event loop of destroyed browser
  289. 672 tests
  290. 12 sec to complete
  291. ## Version 2.0.3 2014-09-25
  292. FIXED window.cookies fails with error #610
  293. FIXED HTMLImageElement._attrModified not passing callback to
  294. HTML.resourceLoader.load #624
  295. FIXED Add raise method to xhr to catch errors in handlers #681
  296. FIXED Chunked and gzipped content is not decompressed #707
  297. 672 tests
  298. 11 sec to complete
  299. ## Version 2.0.2 2014-09-25
  300. ADDED Only decode HTML documents, and support meta tag with charset
  301. CHANGED Switched from using encoding to iconv-lite
  302. CHANGED Switched from using Q to Bluebird
  303. 671 tests
  304. 12 sec to complete
  305. ## Version 2.0.1 2014-09-24
  306. FIXED DNS.lookup should use lookup, not resolve
  307. ## Version 2.0.0 2014-09-24
  308. Much much has changed, and the documentation has not caught up. Here's a
  309. partial and incomplete list.
  310. `browser.tabs` replaces `browser.windows`. Is now an array so you can access a
  311. tab directly (e.g. `browser.tabs[0]`), and also switch tabs more easily (e.g.
  312. `browser.tabs.current = 0`).
  313. `console.log`, `console.error` and friends now emit a `console` event from the
  314. browser. First argument is the output type (e.g. "log"), second is the
  315. formatted text.
  316. `console.error` and `console.assert` output to standard error (unless silent).
  317. `browser.url` returns the URL of the current document.
  318. New browser has no open window. You need to call `visit`, `open` or set
  319. `location`.
  320. Brand new implementation of browser history, fixes the "two URLs, one window"
  321. issue.
  322. `browser.request` and `browser.response` return the request/response used for
  323. the last top-most page load. All other resources available from
  324. `browser.resources`. These replace `lastRequest` and `lastResponse`.
  325. Added `browser.activeElement` (removed `browser.focus`) and support for
  326. `autofocus` attribute.
  327. Browser is now an `EventEmitter` so you can hook into it and instrument it.
  328. The `wait` method now takes two optional parameters: options that determine how
  329. long to wait and a callback. Options include `duration`, `function` and
  330. `element`, the later completing when the element is found in the document.
  331. The `wait` method's wait function now receives two parameters: the active window
  332. and how long the wait is for the next event (0 to Infinity).
  333. The `visit` method now passes applicable options to `wait` (`duration`,
  334. `function`, etc).
  335. The `maxWait` option is now called `waitDuration` and `waitFor` is no longer
  336. supported. waitDuration should be provided in milliseconds (maxWait was provided in seconds)
  337. Introducing assertsions to make your life all the more easier, for example:
  338. browser.element("h1")
  339. browser.text("h1", "Header")
  340. browser.elements("li", { atLeast: 5 })
  341. browser.assert.url("http://example.com")
  342. Added support for deflat and gzip responses.
  343. New API for accessing resources, use `browser.resources`. Lots of goodies like
  344. allowing you to retrieve resources directory (`resources.get`,
  345. `resources.post`), define how resources are handled, emulate server failures
  346. (`resources.fail`), delay responses (`resources.delay`), even mock responses
  347. (`resources.mock`).
  348. 676 tests
  349. 12 sec to complete
  350. ## Version 1.4.1 2012-08-22
  351. Fixed another timer edge case.
  352. 550 tests
  353. 14.5 sec to complete
  354. ## Version 1.4.0 2012-08-22
  355. Support for browser custom headers ():
  356. browser.headers =
  357. "Accept-Language": "da, en-gb"
  358. `browser.fork()` now copies browser options (Jakub Kulhan).
  359. Fixed `window.close()` to properly dispose of the context, and added
  360. `browser.close()` to properly close all windows and cleanup. If you're running
  361. into memory issues, use either method.
  362. Share the same location instance between history stack entries (David Stendardi)
  363. Do not down-case file: URLs.
  364. Implemented `Node.contains` (Dave Dopson).
  365. Setting `element.style.width` now reflected in value of `element.clientWidth`
  366. and `element.offsetWidth` (and same for height).
  367. Upgraded dependencies, tested with Node 0.8.6, jQuery 1.8.0, require.js 2.0.6.
  368. Fail if Contextify module not available.
  369. Fixed edge case where timers may fire after `browser.wait` returns.
  370. 550 tests
  371. 14.5 sec to complete
  372. ## Version 1.3.1 2012-06-05
  373. The `id`, `name` and `value` properties should be empty strings if the
  374. corresponding attribute is not set.
  375. 537 tests
  376. 13.0 sec to complete
  377. ## Version 1.3.0 2012-06-05
  378. Note that `browser.text` now trims and strips consecutive whitespace.
  379. Added maximum waiting period with the `maxWait` browser option, which defaults
  380. to 5 seconds.
  381. You can set `maxWait` and `wait` duration as number of milliseconds or textual
  382. value like "5s", "1m", etc.
  383. Fixed `a.href` to not break when missing `href` attribute.
  384. Fixed JS execution bug that messes with require.js.
  385. Fixed failing to create empty document on HTTP error.
  386. 531 tests
  387. 12.8 sec to complete
  388. ## Version 1.2.0 2012-05-28
  389. Added `browser.load` for loading HTML instead of hitting a URL.
  390. Allow `browser.select` to use the option text.
  391. Reload document when forking browser.
  392. Set `accept-encoding` to "identity".
  393. `JSON.parse` now respects `Array.prototype`.
  394. Implemented `window.resizeBy` and `window.resizeTo`.
  395. If DOM attribute is not set, `getAttribute` will return `null` just like any
  396. browser (though the spec insists on empty string).
  397. Fix all file loading (document and resources) to use same code path.
  398. 531 tests
  399. 12.5 sec to complete
  400. ## Version 1.1.7 2012-05-27
  401. Create DOM document after Web page has loaded. If you want to set document
  402. location and wait for document to load, so this:
  403. browser.location = url;
  404. browser.on("loaded", function() {
  405. // Called after document has loaded
  406. ...
  407. })
  408. Remove 'Content Type' and 'Content Length' on redirect (re-fixed.)
  409. 513 tests
  410. 12.2 sec to complete
  411. ## Version 1.1.6 2012-05-26
  412. Fire `focus` and `blur` events when filling fields, selecting fields, pressing
  413. button and switching windows.
  414. Both `focus` and `blur` methods now work and you can get the `activeElement`.
  415. Tweak to in-line script processing to fix a problem no one reported.
  416. 513 tests
  417. 12.3 sec to complete
  418. ## Version 1.1.5 2012-05-24
  419. The `wait` function (and its derivatives) now return most recent error in
  420. callback.
  421. To use promises and duration function, call `wait` with two arguments, second
  422. one being `null`.
  423. Workaround for the tricky `getElementById("foo").querySelector("#foo .bar")`
  424. behavior that JSDOM doesn't get quite right.
  425. 500 tests
  426. 12.3 sec to complete
  427. ## Version 1.1.4 2012-05-22
  428. Make sure `wait` callback doesn't get the wrong `this`.
  429. 496 tests
  430. 11.5 sec to complete
  431. ## Version 1.1.3 2012-05-22
  432. Fixed setting cookie on redirect to different domain.
  433. Fixed iframe doesn't retain value of src attribute.
  434. Fixed window.close property not set (Jerome Gravel-Niquet).
  435. Added documentation and tests for promises.
  436. 496 tests
  437. 11.9 sec to complete
  438. ## Version 1.1.2 2012-05-16
  439. Trim stack trace at call to `contextify.run`. Also, if you upgrade, Contextify
  440. no longer dumps error messages to stderr.
  441. 489 tests
  442. 11.8 sec to complete
  443. ## Version 1.1.1 2012-05-16
  444. Fixes `visit` and `wait` silencing any exceptions thrown during the callback's
  445. execution.
  446. Added empty `navigator.plugins`.
  447. Added `atob` and `btoa`.
  448. 489 tests
  449. 12.0 sec to complete
  450. ## Version 1.1.0 2012-05-13
  451. Fixed `onload` event not firing on window.
  452. Added `navigator.cookieEnabled` and `navigator.vendor`.
  453. Added empty `Accept-Encoding` header since there's no gzip/compress support at
  454. the moment.
  455. Fixed `Browser` default settings.
  456. Upgraded to HTML5 0.3.8.
  457. 487 tests
  458. 11.8 sec to complete
  459. ## Version 1.0.0 2012-05-10
  460. Yes, that is right, Zombie now supports promises. Like this:
  461. browser.visit("http://localhost:3000/").
  462. then(function() {
  463. assert.equal(browser.text("H1"), "Deferred zombies");
  464. // Chaining works by returning a promise here
  465. return browser.clickLink("Hit me");
  466. }).
  467. then(function() {
  468. assert.equal(browser.text("H1"), "Ouch");
  469. });
  470. A new way to set authentication credentials so they can be applied to specific
  471. host (e.g. HTTP Basic one host, OAuth Bearer another). Like this:
  472. // HTTP Basic takes user and password
  473. browser.authenticate().basic("me", "secret")
  474. // OAuth 2.0 Bearer takes an access token
  475. browser.authenticate("example.com:443").bearer("12345")
  476. // Show the authentication credentials in use
  477. console.log(browser.authenticate().token)
  478. Successfully testing Facebook Connect using Zombie (see
  479. `test/facebook_connect_test.coffee`).
  480. 487 tests
  481. 12.1 sec to complete
  482. ## Version 0.13.14 2012-05-09
  483. Changed browser option `windowName` to just `name.`
  484. Setting browser option to `undefined` no longer resets it to default (that was a
  485. stupid idea).
  486. Support for opening link in specified target (named window, `_self`, `_parent`, `_top` or
  487. `_blank`).
  488. Fixed Zombie retaining multiple values for the same cookie (domain/path/key).
  489. 485 tests
  490. 11.9 sec to complete
  491. ## Version 0.13.13 2012-05-09
  492. Should be `windows.select` not `windows.switch`.
  493. 462 tests
  494. 11.4 sec to complete
  495. ## Version 0.13.12 2012-05-09
  496. Cleaned up and documented `browser.windows`.
  497. Brought back JSDOM offset patches, Google Maps fails badly without these.
  498. 462 tests
  499. 11.4 sec to complete
  500. ## Version 0.13.11 2012-05-08
  501. Fix loading URL with document fragment remove document fragment from page
  502. location.
  503. 459 tests
  504. 9.9 sec to complete
  505. ## Version 0.13.10 2012-05-07
  506. Fixed basic/token authentication working for pages but not resources like JS,
  507. CSS (David Newell).
  508. Old-style event handlers (onclick, onsubmit, etc) now have access to event
  509. through `window.event`.
  510. Old-style event handlers can return false to prevent default behavior.
  511. Added `window.Event` and its siblings `UIEvent`, `MouseEvent`, `MutationEvent`
  512. and `StorageEvent`.
  513. 457 tests
  514. 10.2 sec to complete
  515. ## Version 0.13.9 2012-05-07
  516. Make sure you can `window.frames[name].postMessage`.
  517. 453 tests
  518. 9.9 sec to complete
  519. ## Version 0.13.8 2012-05-04
  520. Redirection is now handled by Zombie instead of Request, set cookies to the
  521. right domain.
  522. Run without Coffee-Script.
  523. 453 tests
  524. 9.7 sec to complete
  525. ## Version 0.13.7 2012-05-03
  526. Added support for `postMessage`.
  527. Added support for `window.open()` and working with more than one window at a
  528. time (`browser.windows`).
  529. When following redirect with `#` in it, fire the `hashchange` event.
  530. IFrame window name based on element's `name` attribute.
  531. Fixed IFrame document and window to include Zombie enhancements.
  532. Zombie can now show FB Connect form.
  533. 453 tests
  534. 9.8 sec to complete
  535. ## Version 0.13.6 2012-05-02
  536. You can now set document location to `javascript:expression` and it will
  537. evaluate that expression.
  538. 440 tests
  539. 9.6 sec to complete
  540. ## Version 0.13.5 2012-05-02
  541. Switched default HTML parser back to the more forgiving
  542. [HTML5](https://github.com/aredridel/html5):
  543. - Supports scripts with CDATA
  544. - Supports tag soups
  545. - Preserve order of execution between in-line and loaded JS code
  546. - Support `document.write`
  547. Fix `textContent` of elements that have comments in them to not exclude the
  548. comment text .
  549. 438 tests
  550. 9.7 sec to complete
  551. ## Version 0.13.4 2012-05-01
  552. Upgraded to JSDOM 0.2.14. This includes an upgrade to Contextify which fixes an
  553. edge case with JS scoping. It also translates to 10% faster tests (On My
  554. Machine).
  555. But HTML processing is a bit more picky right now.
  556. Methods like `visit` now pass error to the callback if they fail to load or
  557. parse the page. JavaScript execution errors are handled separately.
  558. 436 tests
  559. 8.0 sec to complete
  560. ## Version 0.13.3 2012-04-30
  561. Fixed failing to redirect after POST request (Vincent P).
  562. 426 tests
  563. 8.8 sec to complete
  564. ## Version 0.13.2 2012-04-26
  565. Fixed iframes not loading properly of firing `onload` event when setting `src`
  566. attribute.
  567. 426 tests
  568. 9.6 sec to complete
  569. ## Version 0.13.1 2012-04-26
  570. Switched from testing with Vows to testing with Mocha. Tests now running
  571. sequentially.
  572. Fixed a couple of issues with cookies, also switched to a better implementation,
  573. see [Tough Cookie](https://github.com/goinstant/node-cookie)
  574. Zombie now submits empty text fields and checked checkboxes with no value.
  575. Support for script type="text/coffeescript" (audreyt).
  576. 425 tests
  577. 10.0 sec to complete
  578. ## Version 0.13.0 2012-04-25
  579. Now requires Node 0.6.x or later. Also upgraded to CoffeeScript 1.3.1, which
  580. helped find a couple of skipped tests.
  581. Added support for proxies by using the excellent [Request
  582. module](https://github.com/mikeal/request)
  583. Added File object in browser (Ian Young)
  584. Added support for EventSource (see [Server-Sent Events](http://dev.w3.org/html5/eventsource/))
  585. ## Version 0.12.15 2012-02-23
  586. Maintenance release: JSDOM 0.2.11/12 is broken, fixing to 0.2.10 (Mike Swift)
  587. ## Version 0.12.14 2012-02-07
  588. Fix redirect not passing the same headers again.
  589. 412 tests
  590. 6.4 sec to complete
  591. ## Version 0.12.13 2012-01-18
  592. `Browser.fire` takes no options (that was an undocumented argument), and always fires events that bubble and can be
  593. cancelled.
  594. Clicking on checkbox or radio button now changes the value and propagated the click event. If `preventDefault`, the
  595. value is changed back.
  596. 411 tests
  597. 6.0 sec to complete
  598. ## Version 0.12.12 2012-01-16
  599. Added element offset properties. Google Maps demand these.
  600. 406 tests
  601. 5.9 sec to complete
  602. ## Version 0.12.11 2012-01-06
  603. Maintenance update, mostly more test coverage, and updates to dependencies.
  604. 403 tests
  605. 4.4 sec to complete
  606. ## Version 0.12.10 2012-01-01
  607. Brought back Web Sockets support (Justin Latimer)
  608. Using JSDOM offsets (Justin Tulloss)
  609. 388 tests
  610. 3.8 sec to complete
  611. ## Version 0.12.9 2011-12-23
  612. Added support for `httpOnly` cookies.
  613. You can now call `browser.cookies` with no arguments to return cookies for the current domain (based on the hostname of
  614. the currently loaded page).
  615. You can now pass `referer` header:
  616. browser.visit("/page", referer: "http://google.com", function() {
  617. . . .
  618. })
  619. Apply 5 second time limit on `browser.wait`, even if there's something going on (e.g. pull requests).
  620. 387 tests
  621. 3.9 sec to complete
  622. ## Version 0.12.8 2011-12-20
  623. Browser implementations of clearInterval/clearTimeout do not throw exceptions (Justin Tulloss)
  624. Fix resources.toString throwing an error (Mr Rogers)
  625. 374 tests
  626. 3.9 sec to complete
  627. ## Version 0.12.7 2011-12-19
  628. Methods like `visit` and `fire` no longer call `wait` if there's no callback.
  629. The wait callback is called from `nextTick`. Fixes a possible race condition.
  630. 366 Tests
  631. 3.7 sec to complete
  632. ## Version 0.12.6 2011-12-18
  633. You can now tell `browser.wait` when to complete processing events by passing either duration (in milliseconds) or a
  634. function that returns true when done. For example:
  635. browser.wait(500, function() {
  636. // Waits no longer than 0.5 second
  637. })
  638. function mapIsVisible(window) {
  639. return window.querySelector("#map");
  640. }
  641. browser.wait(mapIsVisible, function() {
  642. // Waits until the map element is visible on the page
  643. })
  644. Reduced default `waitFor` from 5 seconds to 0.5 seconds. That seems good enough default for most pages.
  645. 366 Tests
  646. 3.7 sec to complete
  647. ## Version 0.12.5 2011-12-16
  648. `Zombie` and `Browser` are no longer distinct namespaces. What you require is the `Browser` class that also includes
  649. all the methods previously defined for `Zombie`. For example:
  650. var Browser = require("zombie")
  651. // This setting applies to all browsers
  652. Browser.debug = true
  653. // Create and use a new browser instance
  654. var browser = new Browser()
  655. browser.visit("http://localhost:3001", function() {
  656. ...
  657. })
  658. Added `browser.history` for accessing history for the current window, `browser.back` for navigating to the previous page
  659. and `browser.reload` for reloading the current page.
  660. Fixed a bug whereby navigating back in push-state history would reload document.
  661. 363 Tests
  662. 2.4 sec to complete
  663. ## Version 0.12.4 2011-12-16
  664. Return undefined for response status when there is no response.
  665. 362 Tests
  666. 2.4 sec to complete
  667. ## Version 0.12.3 2011-12-13
  668. Fixed issue when globally declared variables with no values are not accessible (Brian McDaniel)
  669. 362 Tests
  670. 2.6 sec to complete
  671. ## Version 0.12.2 2011-12-12
  672. Added global options, for example:
  673. Zombie.site = "http://localhost:3003"
  674. Zombie.visit("/browser/test", function() {
  675. ...
  676. })
  677. You can put Zombie in debug mode by setting environment variable `DEBUG`, for example:
  678. $ DEBUG=true vows
  679. Also added `silent` option to suppress all `console.log` output from scripts.
  680. Support origin in websockets (Glen Mailer)
  681. Proper support for CSS style `opacity` property.
  682. 360 Tests
  683. 2.5 sec to complete
  684. ## Version 0.12.1 2011-12-06
  685. Added `browser.success`, returns true if status code is 2xx.
  686. Updated documentation to better reflect new API features and behaviors. Catching up on the many changes since 0.11.
  687. DOM events now dispatched asynchronously as part of event loop.
  688. Allow `//<hostname>` URLs to be used in more places
  689. 359 Tests
  690. 2.4 sec to complete
  691. ## Version 0.12.0 2011-12-06
  692. Zombie is now using real timers instead of the fake clock. That means that a `setTimeout(fn, 5000)` will actually take
  693. 5 seconds to complete.
  694. The `wait` method will wait for short timers (up to 5 seconds), which are quite common for some UI effects, setting up
  695. the page, etc. The maximum wait time is specified by the browser option `waitFor`.
  696. If you need to wait longer, you can call `wait` with a time duration as the first argument.
  697. Log redirect and error responses in debug mode.
  698. 353 Tests
  699. 2.4 sec to complete
  700. ## Version 0.11.8 2011-12-04
  701. Added `browser.query` and `browser.queryAll`. Deprecated `browser.css`;
  702. planning to use it for something else post 1.0.
  703. Calling `html` or `text` when the document is not an HTML page returns
  704. the text contents. Particularly useful if you're looking at the
  705. contents of what should be an HTML page, but got 404 or 500 insteas.
  706. 357 Tests
  707. 2.0 sec to complete
  708. ## Version 0.11.7 2011-11-30
  709. Fixed `console.log` formatting `%s`, `%d` (Quang Van).
  710. Fixed `viewInBrowser`.
  711. Updated documentation to mention `browser.errors and
  712. `browser.resources`, and that `cake watch` and `cake build` are no
  713. longer necessary.
  714. Fix to load cookies that contain equal signs and quotes in the value.
  715. 347 Tests
  716. 2.0 sec to complete
  717. ## Version 0.11.6 2011-11-27
  718. Fixed loading of cookies/history from file, so empty lines are ignored.
  719. Show JavaScript source location when failing to execute in script element.
  720. Don't execute timer/interval that has been removed.
  721. 347 Tests
  722. 2.0 sec to complete
  723. ## Version 0.11.5 2011-11-27
  724. Fixes `Browser is not defined` error.
  725. 347 Tests
  726. 2.0 sec to complete
  727. ## Version 0.11.4 2011-11-27
  728. Added missing zombie.js.
  729. 347 Tests
  730. 2.0 sec to complete
  731. ## Version 0.11.3 2011-11-26
  732. Iframes will now load their content when setting src attribute.
  733. Internal changes: resources, event loop associated with browser, history
  734. associated with window.
  735. Updated installation instructions for Ubuntu.
  736. 347 Tests
  737. 2.2 sec to complete
  738. ## Version 0.11.2 2011-11-22
  739. Send Content-Length in URL-encoded form requests (Sven Bange).
  740. Added support for HTTP Basic and OAuth 2.0 authorization (Paul Dixon).
  741. 344 Tests
  742. 1.9 sec to complete
  743. ## Version 0.11.1 2011-11-21
  744. Better error reporting when executing JS asynchronoulsy (timers, XHR).
  745. Event loop keeps processing past errors.
  746. 333 Tests
  747. 1.8 sec to complete
  748. ## Version 0.11.0 2011-11-20
  749. Changed error handling for the better.
  750. Calling browser.wait or browser.visit no longer passed the
  751. resource/JavaScript error as the first argument, and will continue
  752. processing if there are multiple errors.
  753. Instead, an array of errors is passed as the fourth argument. You can
  754. also access `browser.errors` and to get just the last one, e.g. to
  755. check if any errors were reported, use `browser.error`.
  756. Using `console.log(browser)` will puke over your terminal, so we add
  757. global defaults for sanity.
  758. Set `console.depth` to specify how many times to recurse while
  759. formatting the object (default is zero).
  760. Set `console.showHidden` to show non-enumerable properties (defaults to
  761. false).
  762. 333 Tests
  763. 1.7 sec to complete
  764. ## Version 0.10.3 2011-11-18
  765. Added site option allowing you to call `visit` with a relative path.
  766. Example:
  767. browser = new Browser(site: "localhost:3000")
  768. browser.visit("/testing", function(error, browser) {
  769. })
  770. Fixed uploading of attachments to work with Connect/Express (and
  771. possibly other servers). Formidable (used by Connect) does not support
  772. Base64 encoding. Sending binary instead.
  773. Tested on Node 0.6.1.
  774. 330 Tests
  775. 2.1 sec to complete
  776. ### Version 0.10.2 2011-10-13
  777. Fixed #173 browser.open() causes Segmentation fault (Brian McDaniel)
  778. Upgraded to JSDOM 0.2.7.
  779. ### Version 0.10.1 2011-09-08
  780. Tests that this == window == top == parent. True when evaluated within
  781. the context of the browser, not necessarily when using browser.window.
  782. Removed JSDOM patch for iframes, no tests failing, let's see what
  783. happens ...
  784. Fixes #164 jQuery selectors with explicit context fail.
  785. Better stack traces for client-side JS. This will help in debugging and
  786. filing issues.
  787. Updated installation instructions for OS X/Windows.
  788. Upgraded to JSDOM 0.2.4 and testing with jQuery 1.6.3.
  789. 329 Tests
  790. 2.9 sec to complete
  791. ### Version 0.10.0 2011-08-27
  792. Upgraded to [JSDOM](https://github.com/tmpvar/jsdom) 0.2.3 which brings
  793. us a Window context that works for asynchronous invocations (that would
  794. be timers, XHR and browser.evaluate), and many many other improvements.
  795. Tested for compatibility with jQuery 1.6.2. Yes. It works.
  796. *NOTE*: This release uses
  797. [htmlparser](https://github.com/gmosx/htmlparser) as the default parser,
  798. while waiting for some bug fixes on
  799. [HTML5](https://github.com/aredridel/html5). Unfortunately, htmlparser
  800. is limited in what it can accept and properly parse. Be aware of the
  801. following issues:
  802. - Your document *must* have `html`, `head` and `body` elements.
  803. - No CDATAs. But then again, CDATA is so 1999.
  804. - Tag soups break the parser.
  805. - Scripts can't use `document.write`. Again, it's not 1999.
  806. Added `browser.loadCSS` option. Set this to load external stylesheets.
  807. Defaults to `true`.
  808. Added `browser.htmlParser` option. Tells JSDOM which HTML5 parser to
  809. use. Use `null` for the default parser.
  810. Fixed handling of `file` protocol.
  811. ### Version 0.9.7 2011-07-28
  812. Fixed: require.paths is deprecated [#158]
  813. Fixed: missing pathname support for window.location.href [#156]
  814. Fixed: not running script specs due to bug in CoffeeScript (iPaul
  815. Covell) [#151]
  816. Updated documentation to clarify installation instructions for OS X and
  817. Ubuntu.
  818. 311 Tests
  819. 4.5 sec to complete
  820. ### Version 0.9.6 2011-07-28
  821. Implements file:// requests using node.js' native fs module rather than
  822. leaning on its http module (Ryan Petrello)
  823. Added a basic infection/installation section to documentation (terryp)
  824. Modified resources and xhr to better work with SSL (Ken Sternberg)
  825. ### Version 0.9.5 2011-04-11
  826. Callbacks on input/select changes (Julien Guimont)
  827. Fix type that broke compatibility with jQuery 1.5.1 (Chad Humphries)
  828. Enabled window.Image to accept height and width attributes [#35]
  829. Implemented window.navigator.javaEnabled() [#35]
  830. Added setter for document.location [#90]
  831. Fixed XPath Sorting / Specs (Blake Imsland)
  832. 311 Tests
  833. 4.5 sec to complete
  834. ### Version 0.9.4 2011-02-22
  835. Added preliminary support for Web sockets (Ben Ford).
  836. Fixes `eval` to execute in the global scope.
  837. Fixes error when dumping cookies (Christian Joudrey).
  838. Fixed some typos in the README (Jeff Hanke).
  839. Speed bump from running on Node 0.4.1.
  840. 295 Tests
  841. 2.9 sec to complete
  842. ### Version 0.9.3 2011-02-22
  843. Fixes seg fault when Zombie fails to compile a script.
  844. 293 Tests
  845. 3.3 sec to complete
  846. ### Version 0.9.2 2011-02-21
  847. Fixes a couple of specs, plugs hole in array to prevent segfaults, and
  848. adds try/catch to leave context after executing script.
  849. 292 Tests
  850. 3.3 sec to complete
  851. ### Version 0.9.1 2011-02-17
  852. Some internal changes to history. Breaks iframe.
  853. 289 Tests
  854. 3.3 sec to complete
  855. ### Version 0.9.0 2011-02-17
  856. New isolated contexts for executing JavaScript. This solves a long
  857. standing problems with pages that have more than one script. Briefly
  858. speaking, each window gets it's own context/global scope that is shared
  859. by all scripts loaded for that page, but isolated from all other
  860. windows.
  861. Fixes error handling on timeout/XHR scripts, these now generate an
  862. `onerror` event.
  863. Eventloop is now associated with window instead of browser.
  864. Fixes URL resolution in XHR requests with no port.
  865. 293 Tests
  866. 3.3 sec to complete
  867. ### Version 0.8.13 2011-02-11
  868. Tested with Node 0.4.0.
  869. Add support for IFRAMEs (Damian Janowski).
  870. Upgraded to HTML5 0.2.13.
  871. Fixes #71 cookie names now preserve case.
  872. Fixes #69 incorrectly resolving partial URLs in XHR requests.
  873. Fixes `browser.clock` to use `Date.now` instead of `new Date` (faster).
  874. Fixes `browser.dump`.
  875. In debug mode, show when firing timeout/interval.
  876. Added `cake install`.
  877. 293 Tests
  878. 3.7 sec to complete
  879. ### Version 0.8.12 2011-02-01
  880. Tested with Node 0.3.7 in preparation for Node 0.4.0.
  881. Added `browser.fork` (Josh Adell):
  882. > Return a new browser using a snapshot of this browser's state. This
  883. method clones the forked browser's cookies, history and storage. The
  884. two browsers are independent, actions you perform in one browser do not
  885. affect the other.
  886. > Particularly useful for constructing a state (e.g. sign in, add items
  887. to a shopping cart) and using that as the base for multiple tests, and
  888. for running parallel tests in Vows.
  889. Fix firing the `change` event on `SELECT` elements when using jQuery
  890. (Damian Janowski).
  891. Fix for `jQuery.ajax` receiving a non-string `data` option (Damian
  892. Janowski).
  893. Fix to allow `script` elements that are not JavaScript (Sean Coates).
  894. NOTE: In this release I started running the test suite using `cake test`
  895. and recording the time reported by Vows. This doesn't count the
  896. time it takes to fire up Node, Cake, etc, so the reported time is
  897. approximately a second smaller than the previously reported time for
  898. 0.8.11. All other things being equal.
  899. 292 Tests
  900. 3.7 sec to complete
  901. ### Version 0.8.11 2011-01-25
  902. Added `browser.source` which returns the unmodified source of
  903. the current page (Bob Lail).
  904. Added support for the Referer header (Vinicius Baggio).
  905. If cookies do not specify a path, they are set to the root path
  906. rather than to the request path (Bob Lail).
  907. Cookies are allowed to specify paths other than the request path
  908. (Bob Lail).
  909. Ensure fields are sent in the order they are described (José Valim).
  910. Fix parsing of empty body (Vinicius Baggio).
  911. Add support for window.screen (Damian Janowski).
  912. Zombie now sends V0 cookies (Assaf Arkin).
  913. Fix for loading scripts over SSL (Damian Janowski).
  914. Added `window.resources` to return all resources loaded by the page
  915. (including the page itself). You can see what the page is up with:
  916. browser.window.resources.dump()
  917. Modified `lastRequest`/`lastResponse` to use the window resources, fixed
  918. `browser.status` and `browser.redirected` to only look at the page
  919. resource itself.
  920. 282 Tests
  921. 4.3 sec to complete
  922. ### Version 0.8.10 2011-01-13
  923. Allow setting cookies from subdomains (Damian Janowski & Michel Martens).
  924. Modified `browser.fire` to fire MouseEvents as well (Bob Lail).
  925. Added `window.title` accessor (Bob Lail).
  926. Fixed `window.navigator.userAgent` to return `userAgent` property (same
  927. as sent to server) (Assaf Arkin).
  928. Added support for `alert`, `confirm` and `prompt` (Assaf Arkin).
  929. Added accessors for status code from last respone (`browser.statusCode`)
  930. and whether last response followed a redirect (`browser.redirected`)
  931. (Assaf Arkin).
  932. The `visit`, `clickLink` and `pressButton` methods now pass three
  933. arguments to the callback: error, browser and status code (Assaf Arkin).
  934. 265 Tests
  935. 3.7 sec to complete
  936. ### Version 0.8.9 2011-01-10
  937. Properly use the existance operator so empty strings are sent (José Valim).
  938. Fix to XPath evaluation and sorting by document order (José Valim).
  939. Added `unselect`, `selectOption` and `unselectOption` to browser (Bob
  940. Lail).
  941. Added `cookies.clear` (Bob Lail).
  942. You can now call browser methods that accept a selector (e.g. `fill`,
  943. `select`) with the element itself.
  944. Fix to populate fields even if field type is invalid (Bob Lail).
  945. Update to HTML5 0.2.12.
  946. 238 Tests
  947. 3.2 sec to complete
  948. ### Version 0.8.8 2011-01-04
  949. Fixed script execution order: now in document order even when mixing
  950. internal and external scripts.
  951. Fixed image submit (José Valim).
  952. Ensure checkboxes are properly serialized (José Valim).
  953. It should send first select option if none was chosen (José Valim).
  954. 231 Tests
  955. 3.3 sec to complete
  956. ### Version 0.8.7 2011-01-04
  957. Adds DOM Level 3 XPath support.
  958. Added support for file upload: `browser.attach(selector, filename)`.
  959. Send script errors to `window.onerror` and report them back to `visit`
  960. callback.
  961. Support `select` with multiple options (José Valim).
  962. Fix handling of unknown input fields and select fields (José Valim).
  963. Fix issue 24, search and hash must be empty string not null.
  964. Support Node 0.3.3 (thanks [Pete Bevin](http://www.petebevin.com/))
  965. For the brave enough to hack a Zombie, we now support (and `cake setup`
  966. assumes) `npm bundle`.
  967. 224 Tests
  968. 3.1 sec to complete
  969. ### Version 0.8.6 2010-12-31
  970. Now supports cookies on redirect (thanks [Łukasz
  971. Piestrzeniewicz](https://github.com/bragi)).
  972. Handle server returning multiple `Set-Cookie` headers.
  973. The `clickLink` and `pressButton` methods should always pass to callback
  974. and not throw error directly.
  975. Now supports HTTPS.
  976. 198 Tests
  977. 2.6 sec to complete
  978. ### Version 0.8.5 2010-12-31
  979. Re-implemented bcat in JavaScript, so no need to install bcat to use
  980. Zombie.
  981. 197 Tests
  982. 2.6 sec to complete
  983. ### Version 0.8.4 2010-12-30
  984. Added `browser.field` (find an input field, textarea, etc),
  985. `browser.link` (find a link) and `browser.button` (find a button)
  986. methods.
  987. Added `browser.evaluate` to evaluate any arbitrary JavaScript in the
  988. window context and return the result.
  989. Added `browser.viewInBrowser` which uses `bcat` to view page in your
  990. browser of choice.
  991. 197 Tests
  992. 2.6 sec to complete
  993. ### Version 0.8.3 2010-12-30
  994. Zombie now shares global variables between scripts.
  995. 199 Tests
  996. 2.4 sec to complete
  997. ### Version 0.8.2 2010-12-30
  998. Fixed bug whereby Zombie hangs when making requests to a URL that has no
  999. path (e.g. `http://localhost`).
  1000. 198 Tests
  1001. 2.5 sec to complete
  1002. ### Version 0.8.1 2010-12-29
  1003. Added User-Agent string. You can change it by setting the browser
  1004. option `userAgent`.
  1005. There was an error with `browser.location`: documentation said it
  1006. returns a `Location` object but also just a URL. Since `Location`
  1007. object is more consistent with `window.location`, accepted that
  1008. interpretation.
  1009. `Location.assign` did not load a page if the page was already loaded
  1010. in the browser. Changed it to load the page (add caching later on).
  1011. 196 Tests
  1012. 2.6 sec to complete
  1013. ### Version 0.8.0 2010-12-29
  1014. Fixed issue 8, wrong location of package.json.
  1015. Upgraded to JSDOM 0.1.22 and using HTML5 parser throughout.
  1016. Added browser.runScript option. Set to false if you don't want the
  1017. browser to execute scripts.
  1018. You can now set browser options when initializing a new browser, on
  1019. existing `Browser` object or for the duration of a request by passing
  1020. them as second argument to `visit`.
  1021. Browser now has a property called `debug` that you can set to true/false
  1022. (was a function), and separately a method called `log` that logs
  1023. messages when debugging is enabled.
  1024. Added new page covering the browser API.
  1025. 194 Tests
  1026. 2.5 sec to complete
  1027. ### Version 0.7.7 2010-12-28
  1028. Fix JSDOM queue and with it issue #6.
  1029. 189 Tests
  1030. 2.3 sec to complete
  1031. ### Version 0.7.6 2010-12-28
  1032. HTML5 doesn't play nice with JSDOM, bringing back html-parser to handle
  1033. innerHTML (full document parsing still handled by HTML5).
  1034. Added documentation page for CSS selectors.
  1035. Man pages now moved to section 7.
  1036. Added zombie.version.
  1037. 189 Tests
  1038. 2.3 sec to complete
  1039. ### Version 0.7.5 2010-12-28
  1040. Previous fix for document.write was incomplete, this one works better.
  1041. 189 Tests
  1042. 2.5 sec to complete
  1043. ### Version 0.7.4 2010-12-28
  1044. Now parsing documents using HTML5, which can deal better with tag soup.
  1045. Added support for scripts that use document.write.
  1046. Added troublehsooting guide.
  1047. Fixed naming issue: browser.last_request is now lastRequest, same for
  1048. lastResponse and lastError.
  1049. 189 Tests
  1050. 2.5 sec to complete
  1051. ### Version 0.7.3 2010-12-27
  1052. Fixed non-sensical error message when selector fails matching a node
  1053. (`fill`, `check`, `select`, etc).
  1054. Added debugging to help you figure out what's happening when tests run:
  1055. - Call `browser.debug` with a boolean to turn debugging on/off.
  1056. - Call `browser.debug` with a boolean and function to turn debugging
  1057. on/off only while calling that function.
  1058. - Call `browser.debug` with multiple arguments to print them (same as
  1059. `console.log`).
  1060. - Call `browser.debug` with a function to print the result of that
  1061. function call.
  1062. Added an all revealing browser.dump: history, cookies, storage,
  1063. document, etc. Simply call:
  1064. browser.dump
  1065. Testing that Zombie.js can handle jQuery live form submit event. Yes it
  1066. can!
  1067. 185 Tests
  1068. 1.8 sec to complete
  1069. ### Version 0.7.2 2010-12-27
  1070. In CoffeeScript 1.0 loops no longer try preserve block scope when
  1071. functions are being generated within the loop body. Unfortunately, this
  1072. broke a bunch of stuff when running Zombie from CoffeeScript source. It
  1073. had effect when running the compiled JavaScript.
  1074. Changed: window.location now returns the same Location object until you
  1075. navigate to a different page.
  1076. 183 Tests
  1077. 1.8 sec to complete
  1078. ### Version 0.7.1 2010-12-22
  1079. Removed CoffeeScript from runtime dependency list.
  1080. ### Version 0.7.0 2010-12-22
  1081. Added `querySelector` and `querySelectorAll` based on the [DOM Selector
  1082. API](http://www.w3.org/TR/selectors-api/). Use this instead of `find`
  1083. method.
  1084. Browser is now an EventEmitter, you can listen to drain (event queue
  1085. empty), error (loading page) and loaded (what is says).
  1086. You can now use `pressButton` with inputs of type button and reset
  1087. (previously just submit).
  1088. More, better, documentation.
  1089. 187 tests
  1090. 2.0 sec to complete
  1091. ### Version 0.6.5 2010-12-21
  1092. Fixed lack of JavaScript source code: CoffeeScript moved to src,
  1093. JavaScript compiled into lib, life is grand again.
  1094. Changelog is now Markdown file and part of the documentation.
  1095. ### Version 0.6.4 2010-12-21
  1096. First documentation you can actually use.
  1097. ### Version 0.6.3 2010-12-21
  1098. Fixed documentation link.
  1099. `man zombie`
  1100. ### Version 0.6.2 2010-12-21
  1101. First NPM release.
  1102. Started working on documentation site.
  1103. Added cake setup to get you up and running with development dependencies.
  1104. Remove Vows as runtime dependency. Use whichever framework you like. Moved
  1105. sizzle.js from dep to vendor. Moved scripts used during tests to
  1106. spec/.scripts.
  1107. 178 tests
  1108. 1.8 sec to complete
  1109. ### Version 0.6.1 2010-12-20
  1110. Changed browser.cookies from getter to function that accepts cookie domain
  1111. (host and port) and path, and returns wrapper to access specific cookie
  1112. context.
  1113. Fixed: browser now creates new window for each new document.
  1114. Added window.JSON.
  1115. 178 tests
  1116. 1.8 sec to complete
  1117. ### Version 0.6.0 2010-12-20
  1118. First release that I could use to test an existing project.
  1119. Supports for navigation, filling and submitting forms, and selecting document
  1120. content using Sizzle. Browser features include evaluating JavaScript (jQuery,
  1121. Sammy.js), timers, XHR, cookies, local and session storage.
  1122. Still very rough around the edges.
  1123. 175 tests
  1124. 1.8 sec to complete