[mb-commits] branch, remove-selenium, created. Clarify why seed-love-bug still exists even though the selenium tests which p ...

MusicBrainz Git Server <[email protected]> Thu, 31 Jan 2013 08:54:29 +0000
Newsgroups gmane.comp.audio.musicbrainz.cvs
Message-ID <E1U0puf-0006PL-5w@wiley>
The branch, remove-selenium has been created
        at  67d0aa988bdb95c36e2817ff9597a64234739a56 (commit)

- Log -----------------------------------------------------------------
commit 67d0aa988bdb95c36e2817ff9597a64234739a56
Author: warp <[email protected]>
Date:   Thu Jan 31 10:51:10 2013 +0100

    Clarify why seed-love-bug still exists even though the selenium tests which previously used it have been removed.

diff --git a/root/static/tests/seed-love-bug.html b/root/static/tests/seed-love-bug.html
index e3c21c6..cf5daef 100644
--- a/root/static/tests/seed-love-bug.html
+++ b/root/static/tests/seed-love-bug.html
@@ -10,6 +10,10 @@
     </style>
   </head>
   <body>
+
+    <!-- This file is used to demonstrate how to seed the release editor.
+         It is mentioned on http://wiki.musicbrainz.org/Development/Release_Editor_Seeding -->
+
     <form  name="form" id="form" action="/release/add" method="post">
 
       <fieldset>
@@ -29,7 +33,7 @@
         <input name="labels.0.mbid" type="text" value="72a46579-e9a0-405a-8ee1-e6e6b63b8212" />
         <input name="labels.0.catalog_number" type="text" value="RZCD-45118" /><br />
       </fieldset>
-      
+
       <fieldset>
         <legend>Tracklist</legend>
         <input name="mediums.0.track.0.name" type="text" value="the Love Bug"/>

commit 776106fe67a7fbc61b4536de06ef1b4eed26b2a2
Author: warp <[email protected]>
Date:   Fri Jan 25 13:50:10 2013 +0100

    Remove selenium tests.

diff --git a/HACKING b/HACKING
index b46d193..60eba5a 100644
--- a/HACKING
+++ b/HACKING
@@ -37,70 +37,12 @@ The Cover Art features in musicbrainz are provided by
 coverartarchive.org.  To add cover art support to your development set
 up, see HACKING-CAA.md
 
-
-JavaScript and Selenium tests
------------------------------
-
-The tests in t/ also include interface tests, these will be skipped
-unless you have SeleniumRC running.  Similarly we have a set of
-javascript unittests (using QUnit), which we run using phantomjs,
-these will be skipped if phantomjs isn't found.
-
-Selenium tests
----------------
-
-We're using Selenium to run interface tests, to run these tests you
-can use a regular development server and the Selenium IDE.  Log in
-with a user account with permission to make edits before you start a
-test.
-
-Ofcourse a normal development server will have a different data set
-compared to the test environment.  When debugging selenium tests it
-may be useful to run the musicbrainz server in the test environment
-instead, to do that run the following commands:
-
-  $ script/setup_test_db_for_selenium.pl
-  $ MUSICBRAINZ_USE_TEST_DATABASE=1 carton exec script/musicbrainz_server.pl -- -r
-
-We also use pgtap to test the PostgreSQL database itself to ensure triggers are
-firing corrcetly. If you want to run these tests you will need to install pgtap
-(http://pgtap.org) into the TEST database. You can then run tests with:
-
- $ pg_prove -U <user> -d <test database> t/pgtap/*
-
-(Replacing <user> and <test database> as appropriate)
-
-To do headless testing with selenium, it may be useful to create a
-separate "selenium" user.  This way your personal browser settings /
-plugins will not affect the tests, and the tests will run in a clean
-environment.  This user needs to have a browser configured to connect
-through a proxy (localhost:4444).  In theory the proxy configuration
-is taken care of by selenium, but that doesn't seem to work on linux.
-
-To install selenium:
-
-  $ mkdir --parents ~/opt/selenium
-  $ cd ~/opt/selenium
-  ~/opt/selenium$ wget http://selenium.googlecode.com/files/selenium-server-standalone-2.0b2.jar
-
-To run it, first configure some proxy servers, then run the server:
-
-  ~/opt/selenium$ export http_proxy=localhost:4444
-  ~/opt/selenium$ xvfb-run java -jar selenium-server-standalone-2.0b2.jar -forcedBrowserModeRestOfLine '*custom /usr/bin/chromium-browser'
-
-This will use chromium as the browser (and chromium will use the proxy
-set in the environment).
-
-If some test is working in Selenium IDE but failing on Selenium RC, I
-recommend starting the server as follows, this way you can see what's
-happening in the browser:
-
-  ~/opt/selenium$ java -jar selenium-server-standalone-2.0b2.jar -singleWindow -browserSessionReuse -forcedBrowserModeRestOfLine '*custom /usr/bin/chromium-browser'
-
-
 Javascript
 ----------
 
+We have a set of javascript unittests (using QUnit), which we run
+using phantomjs, these will be skipped if phantomjs isn't found.
+
 Currently we have a single QUnit test file to run javascript tests.
 It can be tested inside the browser by visiting
 http://test.musicbrainz.org/static/scripts/tests/all.html (or
diff --git a/Makefile.PL b/Makefile.PL
index 08c20c3..5944ffc 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -162,8 +162,6 @@ test_requires 'Test::Magpie' => '0.04';
 test_requires 'Test::Memory::Cycle';
 test_requires 'Test::Mock::Class';
 test_requires 'Test::Routine';
-test_requires 'Test::WWW::Selenium';
-test_requires 'Test::WWW::Selenium::Catalyst' => '0.07';
 test_requires 'Test::XPath';
 test_requires 'XML::Parser';
 test_requires 'TAP::Parser::SourceHandler::pgTAP';
diff --git a/lib/Test/WWW/Selenium/Parser.pm b/lib/Test/WWW/Selenium/Parser.pm
deleted file mode 100644
index f6adb0f..0000000
--- a/lib/Test/WWW/Selenium/Parser.pm
+++ /dev/null
@@ -1,167 +0,0 @@
-package Test::WWW::Selenium::Parser;
-use Moose;
-
-use Time::HiRes qw(sleep);
-use Test::Builder;
-use aliased 'Test::WWW::Selenium::Parser::Test';
-
-my $timeout_in_seconds = 60;
-
-has speed => (
-    is => 'rw',
-    required => 0
-);
-
-has test_runner => (
-    is => 'ro',
-    required => 1
-);
-
-my $tb = Test::Builder->new;
-our %dispatch = (
-    assertElementPresent => 'is_element_present_ok',
-    assertText => 'text_is',
-    assertValue => 'value_is',
-    check => 'check_ok',
-    click => 'click_ok',
-    clickAndWait => sub {
-        my $sel = shift;
-        $sel->click_ok(@_);
-        $sel->wait_for_page_to_load_ok(10000)
-    },
-    echo => sub {
-        shift;
-        $tb->diag (shift);
-    },
-    fireEvent => 'fire_event_ok',
-    focus => 'focus_ok',
-    open => 'open_ok',
-    select => 'select_ok',
-    setSpeed => 'set_speed_ok',
-    type => 'type_ok',
-    uncheck => 'uncheck_ok',
-    verifyAttribute => 'attribute_is',
-    verifyElementNotPresent => sub {
-        $tb->ok(not shift->is_element_present(@_));
-    },
-    verifyElementPresent => 'is_element_present_ok',
-    verifyText => 'text_is',
-    verifyTextNotPresent => sub {
-        $tb->ok(not shift->is_text_present(@_));
-    },
-    verifyTextPresent => 'is_text_present_ok',
-    verifyNotValue => sub {
-        $tb->ok(not shift->value_is(@_));
-    },
-    verifyNotVisible => sub {
-        $tb->ok(not shift->is_visible(@_));
-    },
-    verifySelectedLabel => 'selected_label_is',
-    verifyValue => 'value_is',
-    verifyVisible => 'is_visible',
-    waitForElementPresent => sub {
-        my $sel = shift;
-      WAIT: {
-          for (1..$timeout_in_seconds) {
-              if (eval { $sel->is_element_present($_[0]) }) {
-                  $tb->ok(1, 'Found ' . $_[0]);
-                  last WAIT
-              }
-              sleep(1);
-          }
-          $tb->ok(0, 'Could not find: ' . $_[0]);
-        }
-    },
-    waitForValue => sub {
-        my $sel = shift;
-      WAIT: {
-          for (1..$timeout_in_seconds) {
-              if (eval { $_[1] ne $sel->get_value($_[0]) }) {
-                  $tb->ok(1, $_[0] . ' has value ' . $_[1]);
-                  last WAIT
-              }
-              sleep(1);
-          }
-          $tb->ok(0, $_[0] . ' does not have value ' . $_[1]);
-        }
-    },
-    waitForNotValue => sub {
-        my $sel = shift;
-      WAIT: {
-          for (1..$timeout_in_seconds) {
-              if (eval { $_[1] ne $sel->get_value($_[0]) }) {
-                  $tb->ok(1, $_[0] . ' does not have value ' . $_[1]);
-                  last WAIT
-              }
-              sleep(1);
-          }
-          $tb->ok(0, $_[0] . ' has value ' . $_[1]);
-        }
-    },
-    waitForVisible => sub {
-        my $sel = shift;
-      WAIT: {
-          for (1..$timeout_in_seconds) {
-              if (eval { $sel->is_visible($_[0]) }) {
-                  $tb->ok(1, $_[0] . ' is visible');
-                  last WAIT
-              }
-              sleep(1);
-          }
-          $tb->ok(0, $_[0] . ' is not visible');
-        }
-    },
-    waitForText => sub {
-        my $sel = shift;
-      WAIT: {
-          for (1..$timeout_in_seconds) {
-              if (eval { $_[1] eq $sel->get_text($_[0]) }) {
-                  $tb->ok(1, 'Text of ' . $_[0] . ' is ' . $_[1]);
-                  last WAIT
-              }
-              sleep(1);
-          }
-          $tb->ok(0, "Text of ${_[0]} is ".$sel->get_text($_[0])." but expected ${_[1]}");
-        }
-    },
-);
-
-sub BUILDARGS {
-    my ($self, %args) = @_;
-
-    my $speed = delete $args{speed};
-
-    $args{test_runner} ||= Test::WWW::Selenium->new(%args);
-    $args{speed} = $speed;
-
-    return \%args;
-}
-
-sub run_test {
-    my ($self, $test) = @_;
-    $tb->new->subtest($test->name, sub {
-        for my $command ($test->commands) {
-            my $method = $dispatch{$command->command}
-                or die 'Cannot dispatch ' . $command->command;
-
-            if (ref($method) eq 'CODE') {
-                $method->($self->test_runner, $command->args);
-            }
-            else {
-                $self->test_runner->$method($command->args);
-            }
-
-            if ($self->speed && $command->command eq "open")
-            {
-                $self->test_runner->set_speed_ok ($self->speed)
-            }
-        }
-    });
-}
-
-sub parse {
-    my ($self, $file) = @_;
-    return Test->new_from_file($file, runner => $self);
-}
-
-1;
diff --git a/lib/Test/WWW/Selenium/Parser/Test.pm b/lib/Test/WWW/Selenium/Parser/Test.pm
deleted file mode 100644
index 1243638..0000000
--- a/lib/Test/WWW/Selenium/Parser/Test.pm
+++ /dev/null
@@ -1,86 +0,0 @@
-package Test::WWW::Selenium::Parser::Test;
-use Moose;
-
-use autodie;
-use XML::LibXML;
-
-has runner => (
-    is => 'ro',
-);
-
-sub run {
-    my $self = shift;
-    $self->runner->run_test($self);
-}
-
-has name => (
-    isa => 'Str',
-    required => 1,
-    is => 'ro',
-);
-
-has commands => (
-    isa => 'ArrayRef',
-    is => 'bare',
-    required => 1,
-    traits => [ 'Array' ],
-    handles => {
-        commands => 'elements',
-    }
-);
-
-sub new_from_file {
-    my ($class, $file, @args) = @_;
-    open(my $test_fh, '<', $file);
-    my $dom = XML::LibXML->load_html( string => do { local $/ = undef; <$test_fh> } );
-    my $xpc = XML::LibXML::XPathContext->new($dom);
-
-    sub node_to_string {
-        # FIXME: do some proper html decoding here.
-        return join ("", map {
-            my $str = $_->toString;
-            $str =~ s,&gt;,>,g;
-            $str =~ s,<br />,\n,g;
-            $str
-        } shift->getChildNodes);
-    };
-
-    return $class->new(
-        name => $file,
-        commands => [
-            map {
-                Test::WWW::Selenium::Parser::Command->new(
-                    command => $_->[0]->string_value,
-                    args => do {
-                        my (undef, @args) = map { node_to_string ($_) } @$_;
-                        \@args
-                    }
-                )
-            }
-            map +[ $xpc->find('td', $_)->get_nodelist ],
-                $xpc->find('//tbody/tr')->get_nodelist
-        ],
-        @args
-    );
-}
-
-package Test::WWW::Selenium::Parser::Command;
-use Moose;
-
-has command => (
-    isa => 'Str',
-    required => 1,
-    is => 'ro',
-);
-
-has args => (
-    isa => 'ArrayRef',
-    is => 'bare',
-    required => 1,
-    traits => [ 'Array' ],
-    handles => {
-        args => 'elements',
-    }
-);
-
-1;
diff --git a/t/selenium.t b/t/selenium.t
deleted file mode 100644
index c24c285..0000000
--- a/t/selenium.t
+++ /dev/null
@@ -1,87 +0,0 @@
-use strict;
-use warnings FATAL => 'all';
-
-use Test::More;
-use Test::WWW::Selenium::Parser;
-use MusicBrainz::Server::Test qw( commandline_override );
-BEGIN { MusicBrainz::Server::Test->prepare_test_server }
-use Test::WWW::Selenium::Catalyst 'MusicBrainz::Server', -no_selenium_server => 1;
-
-use aliased 'File::Find::Rule' => 'Find';
-use Getopt::Long;
-use LWP::UserAgent;
-use Try::Tiny;
-
-#
-# usage:  prove -l -v t/selenium.t :: [OPTIONS]
-#
-# options:
-#
-#    --tests     Specify test files relative to t/selenium/
-#    --speed     Execution speed (delay in milliseconds between each step, default is 0)
-#
-# selenium.t will allways run login/login.html first, even if you specify a list of
-# tests to run. A running SeleniumRC server is required, how we run this stuff for
-# MusicBrainz is documented at http://wiki.musicbrainz.org/User:kuno/Testing .
-#
-# example:
-#
-#    prove -l -v t/selenium.t :: --speed 1000 --tests release_editor/edit-recording.html
-#
-
-my $rc_host = 'localhost';
-my $rc_port = 4444;
-
-my $selenium = LWP::UserAgent->new->get (
-    "http://$rc_host:$rc_port/selenium-server/core/RemoteRunner.html");
-
-if ($selenium->is_success)
-{
-    my $speed = 0;
-    Getopt::Long::Configure ("pass_through");
-    GetOptions ("speed=s" => \$speed);
-
-    my @tests = (
-        Find->file->name('*.html')->in('t/selenium/bugfixes'),
-        Find->file->name('*.html')->in('t/selenium/release_editor'),
-    );
-
-    @tests = commandline_override ("t/selenium/", @tests);
-
-    unshift @tests, 't/selenium/login/login.html';
-
-    plan tests => scalar(@tests);
-
-    my $c = MusicBrainz::Server::Test->create_test_context();
-
-    $c->sql->begin;
-
-    try {
-        MusicBrainz::Server::Test->prepare_test_database($c, '+webservice');
-        MusicBrainz::Server::Test->prepare_test_database($c, '+editor');
-        MusicBrainz::Server::Test->prepare_test_database($c, '+../../admin/sql/SetSequences');
-
-        my $selenium_runner = Test::WWW::Selenium::Parser->new(
-            speed => $speed,
-            test_runner => Test::WWW::Selenium::Catalyst->start({
-                port => 3001,
-                selenium_host => $rc_host,
-                selenium_port => $rc_port,
-            })
-        );
-
-        $selenium_runner->parse($_)->run for @tests;
-    }
-    catch {
-        warn "error: $_";
-    }
-    finally {
-        $c->sql->rollback;
-        die(@_) if @_;
-    };
-}
-else
-{
-    plan skip_all => "Cannot connect to Selenium RC at http://$rc_host:$rc_port";
-}
-
diff --git a/t/selenium/bugfixes/mbs-1204-edit-associations.html b/t/selenium/bugfixes/mbs-1204-edit-associations.html
deleted file mode 100644
index c8752fe..0000000
--- a/t/selenium/bugfixes/mbs-1204-edit-associations.html
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>mbs-1204</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">mbs-1204</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/aff4a693-5970-4e2e-bd46-e2ee49c22de7/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_recordings</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>link=Edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=a.change-recording:eq(2)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=a.change-recording:eq(2)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.newrecording:eq(2)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>link=Done</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_recordings</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.0.confirmed</td>
-	<td>1</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.1.confirmed</td>
-	<td>1</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.2.confirmed</td>
-	<td>1</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.0.gid</td>
-	<td>0cf3008f-e246-428f-abc1-35f87d584d60</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.1.gid</td>
-	<td>new</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.2.gid</td>
-	<td>3f33fc37-43d0-44dc-bfd6-60efd38810c5</td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=input.track-name:eq(1)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>css=input.track-name:eq(1)</td>
-	<td>the Love Bug (MBS-1204 test edit)</td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_recordings</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=a.change-recording:eq(1)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.0.confirmed</td>
-	<td>1</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.1.confirmed</td>
-	<td>1</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.2.confirmed</td>
-	<td>1</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.0.gid</td>
-	<td>0cf3008f-e246-428f-abc1-35f87d584d60</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.1.gid</td>
-	<td>new</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.2.gid</td>
-	<td>3f33fc37-43d0-44dc-bfd6-60efd38810c5</td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/bugfixes/mbs-1204-edit-tracklist.html b/t/selenium/bugfixes/mbs-1204-edit-tracklist.html
deleted file mode 100644
index 1f8754f..0000000
--- a/t/selenium/bugfixes/mbs-1204-edit-tracklist.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>mbs-1204</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">mbs-1204</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/aff4a693-5970-4e2e-bd46-e2ee49c22de7/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=input.track-name:eq(1)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>css=input.track-name:eq(1)</td>
-	<td>the Love Bug (MBS-1204 test edit)</td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.track-up:eq(3)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.track-up:eq(2)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.track-down:eq(2)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_recordings</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.0.confirmed</td>
-	<td>1</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.1.confirmed</td>
-	<td>1</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.2.confirmed</td>
-	<td>1</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.0.gid</td>
-	<td>3f33fc37-43d0-44dc-bfd6-60efd38810c5</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.1.gid</td>
-	<td>84c98ebf-5d40-4a29-b7b2-0e9c26d9061d</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.2.gid</td>
-	<td>0cf3008f-e246-428f-abc1-35f87d584d60</td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=a[href=#change-recording]:eq(2)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.newrecording:eq(1)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_recordings</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>rec_mediums.0.associations.1.gid</td>
-	<td>new</td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/bugfixes/mbs-1524-edit-release.html b/t/selenium/bugfixes/mbs-1524-edit-release.html
deleted file mode 100644
index 87387a0..0000000
--- a/t/selenium/bugfixes/mbs-1524-edit-release.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000" />
-<title>mbs-1490</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">mbs-1490</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/aff4a693-5970-4e2e-bd46-e2ee49c22de7/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>annotation</td>
-	<td>this is an annotation to test MBS-1524.</td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_editnote</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=table.add-release-annotation</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyText</td>
-	<td>css=table.add-release-annotation td p</td>
-	<td>this is an annotation to test MBS-1524.</td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/bugfixes/mbs-1626-add-discs.html b/t/selenium/bugfixes/mbs-1626-add-discs.html
deleted file mode 100644
index a5d6a62..0000000
--- a/t/selenium/bugfixes/mbs-1626-add-discs.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>mbs-1626</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">mbs-1626</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/aff4a693-5970-4e2e-bd46-e2ee49c22de7/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=div.advanced-tracklist div.buttons a[href=#add_disc]</td>
-	<td></td>
-</tr>
-<tr>
-	<td>uncheck</td>
-	<td>tracknumbers</td>
-	<td></td>
-</tr>
-<tr>
-	<td>check</td>
-	<td>trackartists</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>css=div.add-disc-tab.manual &gt; textarea.tracklist</td>
-	<td>MBS-1626 disc 2 from advanced tab</td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.positive.add-disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=div.advanced-tracklist div.buttons a[href=#add_disc]</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>css=div.add-disc-tab.manual &gt; textarea.tracklist</td>
-	<td>MBS-1626 disc 3 from advanced tab</td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.positive.add-disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>name=step_editnote</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>MBS-1626 disc 2 from advanced tab</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>MBS-1626 disc 3 from advanced tab</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/bugfixes/mbs-2151-medium-required.html b/t/selenium/bugfixes/mbs-2151-medium-required.html
deleted file mode 100644
index 45ae03d..0000000
--- a/t/selenium/bugfixes/mbs-2151-medium-required.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>mbs-2151-medium-required</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">mbs-2151-medium-required</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/aff4a693-5970-4e2e-bd46-e2ee49c22de7/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.icon.remove-disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>A release must have at least one medium.</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>link=Add Disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>css=div.add-disc-tab.manual &gt; textarea.tracklist</td>
-	<td>1. a new disc</td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.positive.add-disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>name=step_editnote</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>Remove medium</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>Add medium</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/disabled/add-disc-cdstub-import.html b/t/selenium/disabled/add-disc-cdstub-import.html
deleted file mode 100644
index 165222f..0000000
--- a/t/selenium/disabled/add-disc-cdstub-import.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>add-disc-existing-tracklist</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">add-disc-existing-tracklist</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/aff4a693-5970-4e2e-bd46-e2ee49c22de7/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>link=Add Disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>link=CDStub import</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>import-release</td>
-	<td>love</td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>import-artist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=a[href=#import-search]</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=div.search-result a.icon:eq(0)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=div.search-result a.icon:eq(0)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=table.import-tracklist tr.track:eq(2)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>//input[@value='Add Disc']</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=#preview table.preview:eq(1) tr td.title:eq(1)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyText</td>
-	<td>//fieldset[@id='recording-assoc-disc-0']/p</td>
-	<td>Click Edit to edit the recording associations for this disc.</td>
-</tr>
-<tr>
-	<td>assertElementPresent</td>
-	<td>css=#recording-assoc-disc-1 span.add-recording:eq(1)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>assertElementPresent</td>
-	<td>css=table.add-medium</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/disabled/add-disc-existing-tracklist.html b/t/selenium/disabled/add-disc-existing-tracklist.html
deleted file mode 100644
index e013f7f..0000000
--- a/t/selenium/disabled/add-disc-existing-tracklist.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>add-disc-existing-tracklist</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">add-disc-existing-tracklist</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/aff4a693-5970-4e2e-bd46-e2ee49c22de7/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>link=Add Disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>link=Existing tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>import-release</td>
-	<td>My Demons</td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>import-artist</td>
-	<td>Distance</td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=a[href=#import-search]</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=div.search-result a.icon:eq(0)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=div.search-result a.icon:eq(0)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=table.import-tracklist tr.track:eq(12)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>//input[@value='Add Disc']</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=#preview table.preview:eq(1) tr td.title:eq(11)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyText</td>
-	<td>//fieldset[@id='recording-assoc-disc-0']/p</td>
-	<td>Click Edit to edit the recording associations for this disc.</td>
-</tr>
-<tr>
-	<td>verifyText</td>
-	<td>//fieldset[@id='recording-assoc-disc-1']/p</td>
-	<td>Click Edit to edit the recording associations for this disc.</td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>assertElementPresent</td>
-	<td>css=table.add-medium</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/disabled/add-disc-freedb-import.html b/t/selenium/disabled/add-disc-freedb-import.html
deleted file mode 100644
index e868ef2..0000000
--- a/t/selenium/disabled/add-disc-freedb-import.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>add-disc-existing-tracklist</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">add-disc-existing-tracklist</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/aff4a693-5970-4e2e-bd46-e2ee49c22de7/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>link=Add Disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>link=FreeDB import</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>import-release</td>
-	<td>My Demons</td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>import-artist</td>
-	<td>Distance</td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=a[href=#import-search]</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=div.search-result a.icon:eq(0)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=div.search-result a.icon:eq(0)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=table.import-tracklist tr.track:eq(12)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>//input[@value='Add Disc']</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=#preview table.preview:eq(1) tr td.title:eq(11)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyText</td>
-	<td>//fieldset[@id='recording-assoc-disc-0']/p</td>
-	<td>Click Edit to edit the recording associations for this disc.</td>
-</tr>
-<tr>
-	<td>assertElementPresent</td>
-	<td>css=#recording-assoc-disc-1 span.add-recording:eq(11)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input[value=&quot;427385&quot;]</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>assertElementPresent</td>
-	<td>css=table.add-medium</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/login/login.html b/t/selenium/login/login.html
deleted file mode 100644
index b6da605..0000000
--- a/t/selenium/login/login.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>login</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">login</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/logout</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementNotPresent</td>
-	<td>css=li.editing</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>link=Log In</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>id-remember_me</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>id-username</td>
-	<td>kuno</td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>id-password</td>
-	<td>byld</td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>css=span.login button</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyText</td>
-	<td>css=li.account a</td>
-	<td>kuno</td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=li.editing</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/release_editor/add-and-remove-disc.html b/t/selenium/release_editor/add-and-remove-disc.html
deleted file mode 100644
index 95f7d87..0000000
--- a/t/selenium/release_editor/add-and-remove-disc.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000" />
-<title>mbs-1490</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">mbs-1490</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/aff4a693-5970-4e2e-bd46-e2ee49c22de7/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>link=Add Disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>css=div.add-disc-tab.manual &gt; textarea.tracklist</td>
-	<td>1. I do not really want to add this disc (4:45)</td>
-</tr>
-<tr>
-	<td>check</td>
-	<td>id=tracknumbers</td>
-	<td></td>
-</tr>
-<tr>
-	<td>check</td>
-	<td>id=trackartists</td>
-	<td></td>
-</tr>
-<tr>
-	<td>check</td>
-	<td>id=tracktimes</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.positive.add-disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-previous</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>//fieldset[@id='mediums.1.advanced-disc']/table/tbody/tr/td[4]/input[3]</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_editnote</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementNotPresent</td>
-	<td>css=table.add-medium</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextNotPresent</td>
-	<td>Please come back later</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/release_editor/add-disc-manual-entry.html b/t/selenium/release_editor/add-disc-manual-entry.html
deleted file mode 100644
index 27f6217..0000000
--- a/t/selenium/release_editor/add-disc-manual-entry.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>add-disc-manual-entry</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">add-disc-manual-entry</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/aff4a693-5970-4e2e-bd46-e2ee49c22de7/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>link=Add Disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>check</td>
-	<td>id=trackartists</td>
-	<td></td>
-</tr>
-<tr>
-	<td>check</td>
-	<td>id=tracknumbers</td>
-	<td></td>
-</tr>
-<tr>
-	<td>check</td>
-	<td>id=tracktimes</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>css=div.add-disc-tab.manual &gt; textarea.tracklist</td>
-	<td>1. foo<br />2. bar</td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.positive.add-disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyText</td>
-	<td>//fieldset[@id='recording-assoc-disc-0']/p</td>
-	<td>Click Edit to edit the recording associations for this disc.</td>
-</tr>
-<tr>
-	<td>verifyVisible</td>
-	<td>css=#recording-assoc-disc-1 span.add-recording</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>assertElementPresent</td>
-	<td>css=table.add-medium</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/release_editor/add-release.html b/t/selenium/release_editor/add-release.html
deleted file mode 100644
index bfcc0d6..0000000
--- a/t/selenium/release_editor/add-release.html
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>add-release</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">add-release</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/add</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>id-name</td>
-	<td>Release Editor: Add Release test</td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>release-artist</td>
-	<td>m-flo</td>
-</tr>
-<tr>
-	<td>fireEvent</td>
-	<td>release-artist</td>
-	<td>iamfeelinglucky</td>
-</tr>
-<tr>
-	<td>waitForNotValue</td>
-	<td>id-artist_credit.names.0.artist.id</td>
-	<td></td>
-</tr>
-<tr>
-	<td>select</td>
-	<td>id-primary_type_id</td>
-	<td>label=EP</td>
-</tr>
-<tr>
-	<td>select</td>
-	<td>id-status_id</td>
-	<td>label=Official</td>
-</tr>
-<tr>
-	<td>select</td>
-	<td>id-language_id</td>
-	<td>label=English</td>
-</tr>
-<tr>
-	<td>select</td>
-	<td>id-script_id</td>
-	<td>label=Latin</td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>id-date.year</td>
-	<td>2011</td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>id-date.month</td>
-	<td>03</td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>id-date.day</td>
-	<td>08</td>
-</tr>
-<tr>
-	<td>select</td>
-	<td>id-country_id</td>
-	<td>label=Netherlands</td>
-</tr>
-<tr>
-	<td>assertValue</td>
-	<td>id-labels.0.label_id</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>id-labels.0.name</td>
-	<td>warp records</td>
-</tr>
-<tr>
-	<td>fireEvent</td>
-	<td>id-labels.0.name</td>
-	<td>iamfeelinglucky</td>
-</tr>
-<tr>
-	<td>waitForNotValue</td>
-	<td>id-labels.0.label_id</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>id-barcode</td>
-	<td>9781591843849</td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.track-parser</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>css=textarea.tracklist</td>
-	<td>1. Add Release test (selenium version) (2:43)<br />2. Add Release test (ambient mix) (12:09)<br /></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.close</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyVisible</td>
-	<td>css=td.recording:eq(1) span.add-recording</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyVisible</td>
-	<td>css=td.recording:eq(2) span.add-recording</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-next</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=table.add-release-group</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=table.add-release</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=table.add-release-label</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=table.add-medium</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>edit_note</td>
-	<td>This is an add release test edit made with selenium.</td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-save</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>Release Editor: Add Release test</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>Add Release test (selenium version)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>Add Release test (ambient mix)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>Remove release</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/release_editor/edit-recording.html b/t/selenium/release_editor/edit-recording.html
deleted file mode 100644
index 4d68ed4..0000000
--- a/t/selenium/release_editor/edit-recording.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>edit-recording</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">edit-recording</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/cacc586f-c2f2-49db-8534-6f44b55196f2/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_recordings</td>
-	<td></td>
-</tr>
-<tr>
-	<td>assertText</td>
-	<td>css=div.half-width.recording-assoc p span.release-artist</td>
-	<td>BoA</td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=a[href=#edit]</td>
-	<td></td>
-</tr>
-<tr>
-	<td>waitForElementPresent</td>
-	<td>css=a.change-recording:eq(13)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=a.change-recording:eq(2)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>css=#select-recording-0-1 span.recording input.name</td>
-	<td>Shine We Are! (Video clip)</td>
-</tr>
-<tr>
-	<td>fireEvent</td>
-	<td>css=#select-recording-0-1 span.recording input.name</td>
-	<td>iamfeelinglucky</td>
-</tr>
-<tr>
-	<td>waitForText</td>
-	<td>css=tr.track:eq(2) td.recording a.name</td>
-	<td>Shine We Are! (Video clip)</td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_editnote</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=table.edit-medium</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementNotPresent</td>
-	<td>css=table.details.edit-release</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/release_editor/remove-disc.html b/t/selenium/release_editor/remove-disc.html
deleted file mode 100644
index e9cb2d2..0000000
--- a/t/selenium/release_editor/remove-disc.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>remove-disc</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">remove-disc</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/release/3b3d130a-87a8-4a47-b9fb-920f2530d134/edit</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyVisible</td>
-	<td>mediums.0.advanced-disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>click</td>
-	<td>css=input.icon.remove-disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyNotVisible</td>
-	<td>mediums.0.advanced-disc</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_recordings</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyNotVisible</td>
-	<td>recording-assoc-disc-0</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>recording-assoc-disc-1</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_editnote</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=table.remove-medium</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=table.reorder-mediums</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>
diff --git a/t/selenium/release_editor/seed.html b/t/selenium/release_editor/seed.html
deleted file mode 100644
index 95b9120..0000000
--- a/t/selenium/release_editor/seed.html
+++ /dev/null
@@ -1,191 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:5000/" />
-<title>seed</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">seed</td></tr>
-</thead><tbody>
-<tr>
-	<td>open</td>
-	<td>/static/tests/seed-love-bug.html</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>//input[@value='seed']</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>id-name</td>
-	<td>the Love Bug</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>release-artist</td>
-	<td>m-flo</td>
-</tr>
-<tr>
-	<td>verifySelectedLabel</td>
-	<td>id-primary_type_id</td>
-	<td>Single</td>
-</tr>
-<tr>
-	<td>verifySelectedLabel</td>
-	<td>id-status_id</td>
-	<td>Official</td>
-</tr>
-<tr>
-	<td>verifySelectedLabel</td>
-	<td>id-language_id</td>
-	<td>Japanese</td>
-</tr>
-<tr>
-	<td>verifySelectedLabel</td>
-	<td>id-country_id</td>
-	<td>Japan</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>id-labels.0.name</td>
-	<td>rhythm zone</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>id-labels.0.catalog_number</td>
-	<td>RZCD-45118</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>id-barcode</td>
-	<td>4988064451180</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>id-comment</td>
-	<td>Seed release editor test</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>id-date.year</td>
-	<td>2011</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>id-date.month</td>
-	<td>05</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>id-date.day</td>
-	<td>06</td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_tracklist</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>css=tr.track:eq(1) input.track-name</td>
-	<td>the Love Bug</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>css=tr.track:eq(1) input.track-length</td>
-	<td>4:02</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>css=tr.track:eq(2) input.track-name</td>
-	<td>the Love Bug (Big Bug NYC remix)</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>css=tr.track:eq(2) input.track-length</td>
-	<td>3:42</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>css=tr.track:eq(3) input.track-name</td>
-	<td>the Love Bug (cover)</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>css=tr.track:eq(3) input.track-length</td>
-	<td>5:33</td>
-</tr>
-<tr>
-	<td>verifyText</td>
-	<td>css=legend:eq(1)</td>
-	<td>Disc 2</td>
-</tr>
-<tr>
-	<td>verifyValue</td>
-	<td>css=tr.track:eq(4) input.track-name</td>
-	<td>Second disc seed test</td>
-</tr>
-<tr>
-	<td>echo</td>
-	<td>FIXME: add recording seeding tests</td>
-	<td></td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>step_editnote</td>
-	<td></td>
-</tr>
-<tr>
-	<td>echo</td>
-	<td>FIXME: add verifyElementNotPresent css=table.add-release-group</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=table.add-medium</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=table.add-release-label</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyElementPresent</td>
-	<td>css=table.add-release</td>
-	<td></td>
-</tr>
-<tr>
-	<td>type</td>
-	<td>id-edit_note</td>
-	<td>seed release/add test</td>
-</tr>
-<tr>
-	<td>clickAndWait</td>
-	<td>id-save</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>Second disc seed test</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>the Love Bug (Big Bug NYC remix)</td>
-	<td></td>
-</tr>
-<tr>
-	<td>verifyTextPresent</td>
-	<td>m-flo</td>
-	<td></td>
-</tr>
-</tbody></table>
-</body>
-</html>

-----------------------------------------------------------------------


hooks/post-receive
-- 
mb_server