diff options
Diffstat (limited to 'rt/lib/RT/URI')
-rw-r--r-- | rt/lib/RT/URI/base.pm | 6 | ||||
-rw-r--r-- | rt/lib/RT/URI/fsck_com_rt.pm | 8 | ||||
-rw-r--r-- | rt/lib/RT/URI/t.pm | 83 |
3 files changed, 90 insertions, 7 deletions
diff --git a/rt/lib/RT/URI/base.pm b/rt/lib/RT/URI/base.pm index e50f640c7..56bfef33a 100644 --- a/rt/lib/RT/URI/base.pm +++ b/rt/lib/RT/URI/base.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::URI::base; use strict; diff --git a/rt/lib/RT/URI/fsck_com_rt.pm b/rt/lib/RT/URI/fsck_com_rt.pm index cfe77cdff..ba98b1df4 100644 --- a/rt/lib/RT/URI/fsck_com_rt.pm +++ b/rt/lib/RT/URI/fsck_com_rt.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::URI::fsck_com_rt; use RT::Ticket; @@ -75,7 +75,7 @@ ok (UNIVERSAL::isa($uri,RT::URI::fsck_com_rt), "It's an RT::URI::fsck_com_rt"); ok ($uri->isa('RT::URI::base'), "It's an RT::URI::base"); ok ($uri->isa('RT::Base'), "It's an RT::Base"); -is ($uri->LocalURIPrefix , 'fsck.com-rt://example.com'); +is ($uri->LocalURIPrefix , 'fsck.com-rt://'.$RT::Organization); =end testing diff --git a/rt/lib/RT/URI/t.pm b/rt/lib/RT/URI/t.pm new file mode 100644 index 000000000..2f95b2d3e --- /dev/null +++ b/rt/lib/RT/URI/t.pm @@ -0,0 +1,83 @@ +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# +# This work is made available to you under the terms of Version 2 of +# the GNU General Public License. A copy of that license should have +# been provided with this software, but in any event can be snarfed +# from www.gnu.org. +# +# This work is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK +package RT::URI::t; + +use RT::Ticket; +use RT::URI::base; + +use strict; +use vars qw(@ISA); +@ISA = qw/RT::URI::fsck_com_rt/; + +my $scheme = "t"; + +=head2 ParseURI URI + +When handed an t: URI, figures out if it is an RT ticket. This is an +alternate short form of specifying a full ticket URI. + +=begin testing + +use_ok("RT::URI::t"); +my $uri = RT::URI::t->new($RT::SystemUser); +ok(ref($uri), "URI object exists"); + +my $uristr = "t:1"; +$uri->ParseURI($uristr); +is(ref($uri->Object), "RT::Ticket", "Object loaded is a ticket"); +is($uri->Object->Id, 1, "Object loaded has correct ID"); +is($uri->URI, 'fsck.com-rt://'.$RT::Organization.'/ticket/1', + "URI object has correct URI string"); + +=end testing + +=cut + +sub ParseURI { + my $self = shift; + my $uri = shift; + + # "t:<articlenum>" + # Pass this off to fsck_com_rt, which is equipped to deal with + # tickets after stripping off the t: prefix. + + if ($uri =~ /^$scheme:(\d+)/) { + return $self->SUPER::ParseURI($1); + } else { + $self->{'uri'} = $uri; + return undef; + } +} + +=head2 Scheme + +Return the URI scheme + +=cut + +sub Scheme { + return $scheme; +} + +1; |