Live data from Hacker News

Javascript + DOM in your ruby, the simple way

github.com

11–18 of 18 posts

Re: Javascript + DOM in your ruby, the simple way

#12
I like this a lot. 98% of Javascript code people write does not need to be tested in the actual browser -- but it does need testing. Traditionally, people say "oh it's Javascript, who cares" and then their site only works by coincidence (or more frequently, just doesn't work). Making it easy to write proper unit tests will save people the stress of testing algorithms in the browser (either manually, or by loading a page with Test.More tests), or more likely, encourage them to actually think about their Javascript code as code. You know, that stuff you test, refactor, etc.

(FWIW, a coworker and I did this a few years ago with Rhino and a custom-hacked mock DOM. Doing it with a real DOM, like what an XML parser gives you for your actual page, is much better! Hopefully that's what this library allows.)

Re: Javascript + DOM in your ruby, the simple way

#15
post #10
post #7

So, which browser's quirks does this emulate? And what version of HTML does it support? (seriously. and what user agent does it report? developing cross-browser code is often important) I can see how this could be extremely useful, but it does strike me as yet another source for unique bugs in your JS-manipulating-DOM code, and it's potentially even harder to find out why they're happening.

If you use a client-side js framework like JQuery or Prototype, the cross browser compatibility isn't an issue since it's taken care of for you. The user agent it reports as is irrelevant - it's not a full http client. You can use other ruby tools to fetch a page if you want, and then feed harmony the document. As others pointed out, testing is probably the main use case, but it offers other obvious possibilities; fo…

Nothing is irrelevant for a testing platform. For instance, how does it handle a canvas tag? It'd be useful to be able to dump out frames as images. A user agent string could be used by javascript to do any number of things, so I would hope it's modifiable.

As to the libraries to make things cross-browser compatible, knowing which browser it tries to emulate would be essential to knowing which lines of code would be executed through this tool. If you can't test the IE-specific code, what's the use if you're developing for IE?

Post reply on HN