From 0640f90da6e16a23fc87dd4acb32d1d3604b1267 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 11 Sep 2011 20:25:17 +0200 Subject: Add actual tests --- lib/Travel/Status/DE/VRR.pm | 15 + t/20-vrr.t | 29 +- t/in/essen_bp.html | 762 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 805 insertions(+), 1 deletion(-) create mode 100644 t/in/essen_bp.html diff --git a/lib/Travel/Status/DE/VRR.pm b/lib/Travel/Status/DE/VRR.pm index e16136f..47b3b76 100644 --- a/lib/Travel/Status/DE/VRR.pm +++ b/lib/Travel/Status/DE/VRR.pm @@ -98,6 +98,21 @@ sub new { return $self; } +sub new_from_html { + my ( $class, %opt ) = @_; + + my $self = { html => $opt{html}, }; + + $self->{tree} = XML::LibXML->load_html( + string => $self->{html}, + recover => 2, + suppress_errors => 1, + suppress_warnings => 1, + ); + + return bless( $self, $class ); +} + sub errstr { my ($self) = @_; diff --git a/t/20-vrr.t b/t/20-vrr.t index 5b5b499..da2a1ba 100644 --- a/t/20-vrr.t +++ b/t/20-vrr.t @@ -3,9 +3,36 @@ use strict; use warnings; use 5.010; -use Test::More tests => 2; +use File::Slurp qw(slurp); +use Test::More tests => 94; BEGIN { use_ok('Travel::Status::DE::VRR'); } require_ok('Travel::Status::DE::VRR'); + +my $html = slurp('t/in/essen_bp.html'); + +my $status = Travel::Status::DE::VRR->new_from_html(html => $html); + +isa_ok($status, 'Travel::Status::DE::VRR'); +can_ok($status, qw(errstr results)); + +my @results = $status->results; + +for my $result (@results) { + isa_ok($result, 'Travel::Status::DE::VRR::Result'); + can_ok($result, qw(destination info line time platform)); +} + +is($results[0]->destination, 'Essen Wertstr.', 'first result: destination ok'); +is($results[0]->info, q{}, 'first result: no info'); +is($results[0]->line, '103', 'first result: line ok'); +is($results[0]->time, '20:19', 'first result: time ok'); +is($results[0]->platform, 'Bstg. 1', 'first result: platform ok'); + +is($results[-1]->destination, 'Essen Germaniaplatz', 'last result: destination ok'); +is($results[-1]->info, q{}, 'last result: no info'); +is($results[-1]->line, '101', 'last result: line ok'); +is($results[-1]->time, '21:07', 'last result: time ok'); +is($results[-1]->platform, 'Bstg. 1', 'last result: platform ok'); diff --git a/t/in/essen_bp.html b/t/in/essen_bp.html new file mode 100644 index 0000000..f8cc826 --- /dev/null +++ b/t/in/essen_bp.html @@ -0,0 +1,762 @@ + + + +Fahrplanauskunft + + + + + + + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Aushangfahrplan
Abfahrtsmonitor
Persönlicher Fahrplan
Verbundfahrplan Schnellverkehr
Linienplan Schnellverkehr
Stadtlinienpläne
Bedienungshinweise
Bildschirmschoner
Aktuelle Hinweise
Ihr Link zu uns
Impressum
Homepage
+
  + + + + + + + +
+
Abfahrtsmonitor
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
*
* von:Essen / Berliner Platz  
  Abfahrt:20:19 UhrDatum:11.09.2011
+
*
*
+ + + + + + + + + + +
*zur Druckversionzur Druckversion 
*
+
*
*
*
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  Zeit Abfahrt  Linie  Richtung  Hinweise
 20:19Bstg. 1Tram103 Essen Wertstr. 
 20:19Bstg. 2Tram101 Essen Hauptbahnhof 
 20:19Bstg. 3Niederflurbus166 E-Burgaltendorf Burgruine 
 20:21Bstg. 2U-BahnU11 Essen Messe W.-Süd/Gruga 
 20:21Bstg. 2Tram105 Essen Finefraustr. 
 20:21Bstg. 1U-BahnU17 Essen Karlsplatz 
 20:26Bstg. 2Tram109 Essen Steele S 
 20:27Bstg. 2Niederflurbus147 Essen Grimbergstr. 
 20:29Bstg. 1U-BahnU11 Gelsenkirchen Buerer Str. 
 20:29Bstg. 2U-BahnU17 Essen Margarethenhöhe 
 20:30Bstg. 1Niederflurbus147 Essen Erbach 
 20:31Bstg. 2U-BahnU18 Mülheim Hbf 
 20:32Bstg. 1Tram109 Essen Frohnhausen Breilsort 
 20:34Bstg. 1Tram105 Essen Unterstr. 
 20:36Bstg. 4Niederflurbus166 Essen Dellwig Bahnhof 
 20:36Bstg. 2U-BahnU11 Essen Messe W.-Süd/Gruga 
 20:36Bstg. 2Tram103 Essen Hauptbahnhof 
 20:37Bstg. 1Tram101 Essen Germaniaplatz 
 20:40Bstg. 1Niederflurbus145 Essen Fängershof Schleife 
 20:41Bstg. 2Tram109 Essen Steele S 
 20:44Bstg. 2U-BahnU17 Essen Margarethenhöhe 
 20:44Bstg. 1U-BahnU11 Gelsenkirchen Buerer Str. 
 20:46Bstg. 2U-BahnU18 Mülheim Hbf 
 20:46Bstg. 2Niederflurbus145 Essen Heisingen Baldeneysee 
 20:47Bstg. 1Tram109 Essen Frohnhausen Breilsort 
 20:49Bstg. 2Tram101 Essen Hauptbahnhof 
 20:49Bstg. 1Tram103 Essen Wertstr. 
 20:49Bstg. 3Niederflurbus166 Hattingen Märkische Str 
 20:51Bstg. 2Tram105 Essen Finefraustr. 
 20:52Bstg. 2U-BahnU11 Essen Messe W.-Süd/Gruga 
 20:56Bstg. 2Tram109 Essen Hollestr. 
 20:57Bstg. 2Niederflurbus147 Essen Grimbergstr. 
 20:59Bstg. 2U-BahnU17 Essen Margarethenhöhe 
 21:00Bstg. 1Niederflurbus147 Essen Erbach 
 21:01Bstg. 2U-BahnU18 Mülheim Hbf 
 21:03Bstg. 1U-BahnU11 Gelsenkirchen Buerer Str. 
 21:04Bstg. 1Tram105 Essen Unterstr. 
 21:06Bstg. 2Tram103 Essen Hauptbahnhof 
 21:06Bstg. 4Niederflurbus166 Essen Dellwig Bahnhof 
 21:07Bstg. 1Tram101 Essen Germaniaplatz 
+
*
*
*
+ + + + + + + + + +
AbweichungVerspätungen sind berücksichtigtPünktlichFahrt voraussichtlich pünktlich
+
*
*
*
+ + + + + + + + + + +
*zur Druckversionzur Druckversion 
*
+
*
*
*
*
+ + + +
**
+
+
+
+ + -- cgit v1.2.3