use the supplied name of the image file for working out the stored name
[bse.git] / t / 130-importer / 020-article.t
index 7b39f46..e3f8de9 100644 (file)
@@ -9,7 +9,7 @@ BEGIN {
   eval "require Text::CSV;"
     or plan skip_all => "Text::CSV not available";
 }
-plan tests => 42;
+plan tests => 44;
 
 BEGIN {
   unshift @INC, File::Spec->catdir(BSE::Test::base_dir(), "cgi-bin", "modules");
@@ -39,7 +39,7 @@ source=CSV
 target=Article
 update_only=1
 sep_char=\\t
-file_path=t
+file_path=t/data
 ignore_missing=0
 
 [import profile completefile$when]
@@ -55,7 +55,7 @@ map_file1_requireUser=9
 map_file1_notes=10
 map_file1_hide_from_list=11
 skiplines=0
-file_path=t
+file_path=t/data
 ignore_missing=0
 update_only=1
 source=CSV
@@ -90,6 +90,16 @@ skiplines=0
 source=CSV
 target=Article
 
+[import profile alias$when]
+map_id=1
+map_linkAlias=2
+map_title=3
+source=CSV
+target=Article
+code_field=id
+skiplines=0
+update_only=1
+use_codes=1
 CFG
 
 {
@@ -119,12 +129,12 @@ CFG
 linkAlias\tbody\tfile1_file\timage1_file
 "alias$when"\t"This is the body text with multiple lines
 
-Yes, multiple lines with CSV!"\tt00smoke.t\tdata/t101.jpg
+Yes, multiple lines with CSV!"\ttestdata.txt\tt101.jpg
 EOS
     close $fh;
     my $imp = BSE::Importer->new(cfg => $cfg, profile => "simpleupdate$when", callback => sub { note @_ });
     $imp->process($filename);
-    my $testb = Articles->getByPkey($testa->id);
+    my $testb = BSE::TB::Articles->getByPkey($testa->id);
     like($testb->body, qr/This is the body/, "check the body is updated");
     my @images = $testb->images;
     is(@images, 1, "have an image");
@@ -132,10 +142,12 @@ EOS
     is(-s $images[0]->full_filename, -s "t/data/t101.jpg",
        "check size matches source");
 
+    cmp_ok($images[0]->image, '!~', 'data', "check we don't pass full path as basename");
+
     my @files = $testb->files;
     is(@files, 1, "should be 1 file");
-    is($files[0]->displayName, "t00smoke.t", "check display name");
-    is(-s $files[0]->full_filename, -s "t/t00smoke.t", "check size");
+    is($files[0]->displayName, "testdata.txt", "check display name");
+    is(-s $files[0]->full_filename, -s "t/data/testdata.txt", "check size");
   }
 
  SKIP:
@@ -143,17 +155,17 @@ EOS
     my $fh = File::Temp->new;
     my $filename = $fh->filename;
     print $fh <<EOS;
-"alias$when",t00smoke.t,test,"A Test File.txt",local,"A test file from BSE",1,1,1,"Some Notes",1
+"alias$when",testdata.txt,test,"A Test File.txt",local,"A test file from BSE",1,1,1,"Some Notes",1
 EOS
     close $fh;
     my $imp = BSE::Importer->new(cfg => $cfg, profile => "completefile$when", callback => sub { note @_ });
     $imp->process($filename);
-    my $testb = Articles->getByPkey($testa->id);
+    my $testb = BSE::TB::Articles->getByPkey($testa->id);
 
     my ($file) = grep $_->name eq "test", $testb->files;
     ok($file, "found the file with name 'test'")
       or skip "File not found", 9;
-    is(-s $file->full_filename, -s "t/t00smoke.t", "check size");
+    is(-s $file->full_filename, -s "t/data/testdata.txt", "check size");
     is($file->displayName, "A Test File.txt", "displayName");
     is($file->storage, "local", "storage");
     is($file->description, "A test file from BSE", "description");
@@ -174,14 +186,14 @@ EOS
     close $fh;
     my $imp = BSE::Importer->new(cfg => $cfg, profile => "updatefile$when", callback => sub { note @_ });
     $imp->process($filename);
-    my $testb = Articles->getByPkey($testa->id);
+    my $testb = BSE::TB::Articles->getByPkey($testa->id);
 
     my ($file) = grep $_->name eq "test", $testb->files;
     ok($file, "found the updated file with name 'test'")
       or skip "File not found", 9;
     is($file->description, "New description", "description");
     # other fields should be unchanged
-    is(-s $file->full_filename, -s "t/t00smoke.t", "check size");
+    is(-s $file->full_filename, -s "t/data/testdata.txt", "check size");
     is($file->displayName, "A Test File.txt", "displayName");
     is($file->storage, "local", "storage");
     is($file->forSale, 1, "forSale");
@@ -201,7 +213,7 @@ EOS
     close $fh;
     my $imp = BSE::Importer->new(cfg => $cfg, profile => "updatefileb$when", callback => sub { note @_ });
     $imp->process($filename);
-    my $testb = Articles->getByPkey($testa->id);
+    my $testb = BSE::TB::Articles->getByPkey($testa->id);
 
     my ($file) = grep $_->name eq "test", $testb->files;
     ok($file, "found the updated file with name 'test'")
@@ -231,6 +243,20 @@ EOS
     is_deeply([ $imp->leaves ], [], "should be no updated articles");
   }
 
+  { # don't strip - and _ from linkAlias
+    my $fh = File::Temp->new;
+    my $filename = $fh->filename;
+    my $id = $testa->id;
+    print $fh <<EOS;
+$id,"alias-${when}_more",test,t101.jpg
+EOS
+    close $fh;
+    my $imp = BSE::Importer->new(cfg => $cfg, profile => "alias$when", callback => sub { note @_ });
+    $imp->process($filename);
+    my $testb = BSE::TB::Articles->getByPkey($testa->id);
+    is($testb->linkAlias, "alias-${when}_more", "check alias set correctly");
+  }
+
   END {
     $testa->remove($cfg) if $testa;
   }