I glanced over the table of contents and it seems like you missed functional testing [or I missed it]
Creating tests to make sure that function A returns foo and that a date is a date. That is great when you are making sure validators work, that basic functions work, but that is only a small fraction of testing with the browser.
The real world problems come with how does the interface work in browser X, Y, Z. When I click on a button, do I get the correct x and Y coordinates to position my element? Most developers end up doing this testing manually which is a waste of time.
Automating these tests is where the benefit of testing comes from and I do not see any mentions of Selenium or other frameworks like that.
Have you used these frameworks and reason you did not cover them?
Functional testing is not entirely missing, but you're right in that it is not afforded its own chapter or the like. I felt that tools like Selenium felt outside the scope of the book. Selenium can be helpful in creating acceptance tests, but really my experience with it is not so great. Tests are easily too tightly coupled to implementation details in the UI, and when I've used it I've felt that maintaining the Selenium tests is a non-trivial task (especially while under initial development).