IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jul 9, 2008, 1:32:35 PM (18 years ago)
Author:
jhoblitt
Message:

create a Nebulous::Keys object to represent a parsed neb key and impliment other changes to abstract out the handling of keys in order to support "soft" volume requests and the "any" volume

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous-Server/t/75_parse_neb_key.t

    r17076 r18451  
    33# Copryight (C) 2004-2005  Joshua Hoblitt
    44#
    5 # $Id: 75_parse_neb_key.t,v 1.3 2008-03-21 01:23:45 jhoblitt Exp $
     5# $Id: 75_parse_neb_key.t,v 1.4 2008-07-09 23:32:35 jhoblitt Exp $
    66
    77use strict;
     
    1010use Test::More;
    1111
    12 plan tests => 36;
     12plan tests => 80;
    1313
    1414use lib qw( ./t ./lib );
     
    2424# key
    2525{
    26     my ($volume, $path) = parse_neb_key('foo/bar/baz/quix');
    27 
    28     is($path, 'foo/bar/baz/quix', 'path');
    29     is($volume, undef, 'volume name');
    30 }
    31 
    32 {
    33     my ($volume, $path) = parse_neb_key('/foo/bar/baz/quix');
    34 
    35     is($path, 'foo/bar/baz/quix', 'path');
    36     is($volume, undef, 'volume name');
    37 }
    38 
    39 {
    40     my ($volume, $path) = parse_neb_key('//foo/bar/baz/quix');
    41 
    42     is($path, 'foo/bar/baz/quix', 'path');
    43     is($volume, undef, 'volume name');
    44 }
    45 
    46 {
    47     my ($volume, $path) = parse_neb_key('///foo/bar/baz/quix');
    48 
    49     is($path, 'foo/bar/baz/quix', 'path');
    50     is($volume, undef, 'volume name');
    51 }
    52 
    53 {
    54     my ($volume, $path) = parse_neb_key('foo////bar/baz/quix');
    55 
    56     is($path, 'foo/bar/baz/quix', 'path');
    57     is($volume, undef, 'volume name');
    58 }
    59 
    60 {
    61     my ($volume, $path) = parse_neb_key('foo/bar/baz/quix/');
    62 
    63     is($path, 'foo/bar/baz/quix', 'path');
    64     is($volume, undef, 'volume name');
    65 }
    66 
     26    my $key = parse_neb_key('foo/bar/baz/quix');
     27
     28    is($key->path, 'foo/bar/baz/quix', 'path');
     29    is($key->volume, undef, 'volume name');
     30    is($key->soft_volume, undef, 'soft volume name');
     31}
     32
     33{
     34    my $key = parse_neb_key('/foo/bar/baz/quix');
     35
     36    is($key->path, 'foo/bar/baz/quix', 'path');
     37    is($key->volume, undef, 'volume name');
     38    is($key->soft_volume, undef, 'soft volume name');
     39}
     40
     41{
     42    my $key = parse_neb_key('//foo/bar/baz/quix');
     43
     44    is($key->path, 'foo/bar/baz/quix', 'path');
     45    is($key->volume, undef, 'volume name');
     46    is($key->soft_volume, undef, 'soft volume name');
     47}
     48
     49{
     50    my $key = parse_neb_key('///foo/bar/baz/quix');
     51
     52    is($key->path, 'foo/bar/baz/quix', 'path');
     53    is($key->volume, undef, 'volume name');
     54    is($key->soft_volume, undef, 'soft volume name');
     55}
     56
     57{
     58    my $key = parse_neb_key('foo////bar/baz/quix');
     59
     60    is($key->path, 'foo/bar/baz/quix', 'path');
     61    is($key->volume, undef, 'volume name');
     62    is($key->soft_volume, undef, 'soft volume name');
     63}
     64
     65{
     66    my $key = parse_neb_key('foo/bar/baz/quix/');
     67
     68    is($key->path, 'foo/bar/baz/quix', 'path');
     69    is($key->volume, undef, 'volume name');
     70    is($key->soft_volume, undef, 'soft volume name');
     71}
     72
     73# key w/ volume argument
     74{
     75    my $key = parse_neb_key('foo/bar/baz/quix', 'boing');
     76
     77    is($key->path, 'foo/bar/baz/quix', 'path');
     78    is($key->volume, 'boing', 'volume name');
     79    is($key->soft_volume, undef, 'soft volume name');
     80}
     81
     82{
     83    my $key = parse_neb_key('foo/bar/baz/quix', '~boing');
     84
     85    is($key->path, 'foo/bar/baz/quix', 'path');
     86    is($key->volume, 'boing', 'volume name');
     87    is($key->soft_volume, 1, 'soft volume name');
     88}
    6789
    6890# URI w/ volume name
    6991{
    70     my ($volume, $path) = parse_neb_key('neb://foo/bar/baz/quix');
    71 
    72     is($path, 'bar/baz/quix', 'path');
    73     is($volume, 'foo', 'volume name');
    74 }
    75 
    76 {
    77     my ($volume, $path) = parse_neb_key('neb://foo//bar/baz/quix');
    78 
    79     is($path, 'bar/baz/quix', 'path');
    80     is($volume, 'foo', 'volume name');
    81 }
    82 
    83 {
    84     my ($volume, $path) = parse_neb_key('neb://foo///bar/baz/quix');
    85 
    86     is($path, 'bar/baz/quix', 'path');
    87     is($volume, 'foo', 'volume name');
    88 }
    89 
    90 {
    91     my ($volume, $path) = parse_neb_key('neb://foo/bar///baz/quix');
    92 
    93     is($path, 'bar/baz/quix', 'path');
    94     is($volume, 'foo', 'volume name');
    95 }
    96 
    97 {
    98     my ($volume, $path) = parse_neb_key('neb://foo/bar/baz/quix/');
    99 
    100     is($path, 'bar/baz/quix', 'path');
    101     is($volume, 'foo', 'volume name');
    102 }
    103 
     92    my $key = parse_neb_key('neb://foo/bar/baz/quix');
     93
     94    is($key->path, 'bar/baz/quix', 'path');
     95    is($key->volume, 'foo', 'volume name');
     96    is($key->soft_volume, undef, 'soft volume name');
     97}
     98
     99{
     100    my $key = parse_neb_key('neb://foo//bar/baz/quix');
     101
     102    is($key->path, 'bar/baz/quix', 'path');
     103    is($key->volume, 'foo', 'volume name');
     104    is($key->soft_volume, undef, 'soft volume name');
     105}
     106
     107{
     108    my $key = parse_neb_key('neb://foo///bar/baz/quix');
     109
     110    is($key->path, 'bar/baz/quix', 'path');
     111    is($key->volume, 'foo', 'volume name');
     112    is($key->soft_volume, undef, 'soft volume name');
     113}
     114
     115{
     116    my $key = parse_neb_key('neb://foo/bar///baz/quix');
     117
     118    is($key->path, 'bar/baz/quix', 'path');
     119    is($key->volume, 'foo', 'volume name');
     120    is($key->soft_volume, undef, 'soft volume name');
     121}
     122
     123{
     124    my $key = parse_neb_key('neb://foo/bar/baz/quix/');
     125
     126    is($key->path, 'bar/baz/quix', 'path');
     127    is($key->volume, 'foo', 'volume name');
     128    is($key->soft_volume, undef, 'soft volume name');
     129}
     130
     131# URI w/ soft volume name
     132{
     133    my $key = parse_neb_key('neb://~foo/bar/baz/quix/');
     134
     135    is($key->path, 'bar/baz/quix', 'path');
     136    is($key->volume, 'foo', 'volume name');
     137    is($key->soft_volume, 1, 'soft volume name');
     138}
     139
     140# URI w/ volume name and volume argument
     141{
     142    my $key = parse_neb_key('neb://foo/bar/baz/quix', 'boing');
     143
     144    is($key->path, 'bar/baz/quix', 'path');
     145    is($key->volume, 'boing', 'volume name');
     146    is($key->soft_volume, undef, 'soft volume name');
     147}
     148
     149{
     150    my $key = parse_neb_key('neb://foo/bar/baz/quix', '~boing');
     151
     152    is($key->path, 'bar/baz/quix', 'path');
     153    is($key->volume, 'boing', 'volume name');
     154    is($key->soft_volume, 1, 'soft volume name');
     155}
     156
     157{
     158    my $key = parse_neb_key('neb://foo/bar/baz/quix', undef);
     159
     160    is($key->path, 'bar/baz/quix', 'path');
     161    is($key->volume, 'foo', 'volume name');
     162    is($key->soft_volume, undef, 'soft volume name');
     163}
     164
     165# URI w/ ~any volume name
     166{
     167    my $key = parse_neb_key('neb://~any/bar/baz/quix/');
     168
     169    is($key->path, 'bar/baz/quix', 'path');
     170    is($key->volume, undef, 'volume name');
     171    is($key->soft_volume, undef, 'soft volume name');
     172}
     173
     174# URI w/ any volume argument
     175{
     176    my $key = parse_neb_key('neb://boing/bar/baz/quix/', 'any');
     177
     178    is($key->path, 'bar/baz/quix', 'path');
     179    is($key->volume, undef, 'volume name');
     180    is($key->soft_volume, undef, 'soft volume name');
     181}
     182
     183{
     184    my $key = parse_neb_key('neb://boing/bar/baz/quix/', '~any');
     185
     186    is($key->path, 'bar/baz/quix', 'path');
     187    is($key->volume, undef, 'volume name');
     188    is($key->soft_volume, undef, 'soft volume name');
     189}
     190
     191# URI w/ soft volume name
     192{
     193    my $key = parse_neb_key('neb://~foo/bar/baz/quix/');
     194
     195    is($key->path, 'bar/baz/quix', 'path');
     196    is($key->volume, 'foo', 'volume name');
     197    is($key->soft_volume, 1, 'soft volume name');
     198}
    104199
    105200# URI w/o volume name
    106201
    107202{
    108     my ($volume, $path) = parse_neb_key('neb:/foo/bar/baz/quix');
    109 
    110     is($path, 'foo/bar/baz/quix', 'path');
    111     is($volume, undef, 'volume name');
    112 }
    113 
    114 {
    115     my ($volume, $path) = parse_neb_key('neb:///foo/bar/baz/quix');
    116 
    117     is($volume, undef, 'volume name');
    118     is($path, 'foo/bar/baz/quix', 'path');
    119 }
    120 
    121 {
    122     my ($volume, $path) = parse_neb_key('neb://///foo/bar/baz/quix');
    123 
    124     is($path, 'foo/bar/baz/quix', 'path');
    125     is($volume, undef, 'volume name');
     203    my $key = parse_neb_key('neb:/foo/bar/baz/quix');
     204
     205    is($key->path, 'foo/bar/baz/quix', 'path');
     206    is($key->volume, undef, 'volume name');
     207    is($key->soft_volume, undef, 'soft volume name');
     208}
     209
     210{
     211    my $key = parse_neb_key('neb:///foo/bar/baz/quix');
     212
     213    is($key->volume, undef, 'volume name');
     214    is($key->path, 'foo/bar/baz/quix', 'path');
     215    is($key->soft_volume, undef, 'soft volume name');
     216}
     217
     218{
     219    my $key = parse_neb_key('neb://///foo/bar/baz/quix');
     220
     221    is($key->path, 'foo/bar/baz/quix', 'path');
     222    is($key->volume, undef, 'volume name');
     223    is($key->soft_volume, undef, 'soft volume name');
    126224}
    127225
     
    166264# URI w/o volume requires leading slash
    167265eval {
    168     my ($volume, $path) = parse_neb_key('neb:foo/bar/baz/quix');
     266    my $key = parse_neb_key('neb:foo/bar/baz/quix');
    169267};
    170268like( $@, qr/requires a leading slash/, "leading slash" );
Note: See TracChangeset for help on using the changeset viewer.