summaryrefslogtreecommitdiff
path: root/subversion/bindings/swig/perl/native/t/9wc.t
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/bindings/swig/perl/native/t/9wc.t')
-rw-r--r--subversion/bindings/swig/perl/native/t/9wc.t84
1 files changed, 84 insertions, 0 deletions
diff --git a/subversion/bindings/swig/perl/native/t/9wc.t b/subversion/bindings/swig/perl/native/t/9wc.t
new file mode 100644
index 0000000..257b1d2
--- /dev/null
+++ b/subversion/bindings/swig/perl/native/t/9wc.t
@@ -0,0 +1,84 @@
+#!/usr/bin/perl
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+use strict;
+use Test::More tests => 19;
+use Scalar::Util;
+
+# shut up about variables that are only used once.
+# these come from constants and variables used
+# by the bindings but not elsewhere in perl space.
+no warnings 'once';
+
+# TEST
+use_ok('SVN::Core');
+# TEST
+use_ok('SVN::Wc');
+
+my $external_desc = <<'END';
+http://svn.example.com/repos/project1 project1
+-r6 ^/repos/project2@3 "Project 2"
+END
+
+# Run parse_externals_description3()
+# TEST
+my ($externals) = SVN::Wc::parse_externals_description3("/fake/path",
+ $external_desc, 1);
+isa_ok($externals, 'ARRAY', 'parse_externals_description3 returns array ref');
+
+# Check the first member of the returned array.
+# TEST
+isa_ok($externals->[0], '_p_svn_wc_external_item2_t');
+# TEST
+is($externals->[0]->target_dir(), 'project1');
+# TEST
+is($externals->[0]->url(), 'http://svn.example.com/repos/project1');
+# TEST
+isa_ok($externals->[0]->revision(), '_p_svn_opt_revision_t');
+# TEST
+is($externals->[0]->revision->kind, $SVN::Core::opt_revision_head);
+# TEST
+isa_ok($externals->[0]->peg_revision(), '_p_svn_opt_revision_t');
+# TEST
+is($externals->[0]->peg_revision()->kind(),
+ $SVN::Core::opt_revision_head);
+
+# Check the second member
+# TEST
+isa_ok($externals->[1], '_p_svn_wc_external_item2_t');
+# TEST
+is($externals->[1]->target_dir(), 'Project 2');
+# TEST
+is($externals->[1]->url(), '^/repos/project2');
+# TEST
+isa_ok($externals->[1]->revision(), '_p_svn_opt_revision_t');
+# TEST
+is($externals->[1]->revision()->kind(), $SVN::Core::opt_revision_number);
+# TEST
+is($externals->[1]->revision()->value()->number(), 6);
+# TEST
+isa_ok($externals->[1]->peg_revision(), '_p_svn_opt_revision_t');
+# TEST
+is($externals->[1]->peg_revision()->kind(), $SVN::Core::opt_revision_number);
+# TEST
+is($externals->[1]->peg_revision()->value()->number(), 3);
+