Add zoom message.

* Improved tests.

* Refactored for testability. Updated messages. Completed tests.

* Fixed lint.

* Changes from review.

* Added detach for resize event.

* Fixed typo.