The web hates me started as phphatesme in 2008 and is one of the best known German php blogs.

Phphatesme started in 2008 as a hobby project, but grew to be the most famous German php blog the next year. With about 2.000 readers a day in 2010 it became an important source of information for the german php community.

After four years of blogging the focus on php was lost as more web technologies rose. JavaScript, Html, CSS and other topics were part of the daily work. Additionally project management, leadership and quality management got on focus.

In 2013 the blog was renamed to “the web hates me” and is still one of the most important contact point for many web devlopers.

The web hates me platform in build on the shoulders of wordpress and is almost feature complete. Small features are release now and then but most of the changes that are made are editorial. The goal was to continuously check the website after new articles ort features.

The web hates me is based on wordpress. That means, that the main feature like creating a blog post or a page should work by default. The templates for the homepage, the posts and the pages where created from the scratch as well as some wordpress plugins.

Page Rule Check
Home page The homepage shows the header, the footer and 20 article teasers, a facebook block and a list of the most
popular authors.
On every index page there are 21 article teasers. XPath Exists //article[contains(@id, “post-“)] equals 21
The list of authors is static and is limited to four persons. Therefore we only check for existence
of the last author.
Text present Mike Lohmann
The facebook integration is done via the default facebook widget which is implemented via
a small javscript include. We believe that the integration works if the javascript file from
facebook is loaded.
MissingRequest https://connect.facebook.net/en_US/all.js
The footer is generated dynamically via wordpress. Therefore we only check if it is
configured correct by looking for a text that is part of the footer. This check is
processed on every page.
Text present Impressum
Blog post Every blog post consists of a headline, a text, comments, a sidebar and recommended articles. For
testing purposes we created a special test post.
The headline’s text is “headline” so we searched for that string. Additionally we put a unique
word into the article text. This can also be used to test the search results.
Text present Headline
Text present Unique String
The recommended systems are standard article teaser elements as seen on the home page. XPath exists //article[contains(@id, “post-“)] equals 3
The comment section was only styled via css. Therefore we only test if the comment textbox is
available.
Css Selector textarea
Search The search page is powered by wordpress and was not changed. No tests are needed here as the
rendering is already tested within the home page.