Apache2-ASP

 view release on metacpan or  search on metacpan

lib/Apache2/ASP/MediaManager.pm  view on Meta::CPAN


#==============================================================================
sub run
{
  my ($s, $context) = @_;
  
  shift(@_);
	
	my $mode = $context->request->Form->{mode};
	
	return unless ( ! $mode ) || ( $mode !~ m/^(create|edit)$/ );
	
  my $filename = $s->compose_download_file_path( $context );
  my $file = $s->compose_download_file_name( $context );
  
  # Find its MIME type and set our 'ContentType' value:
  my $ext;
  unless( $mode )
  {
    # Find its MIME type and set our 'ContentType' value:
    ($ext) = $file =~ m/.*?\.([^\.]+)$/;

lib/Apache2/ASP/MediaManager.pm  view on Meta::CPAN

  # Store some information for later:
  $ENV{filename} ||= $target_file;
  $ENV{download_file} ||= $filename;
  
  # Depending on the 'mode' parameter, we do different things:
  local $_ = $s->_args('mode');
  if( /^create$/ )
  {
    $s->before_create($context, $Upload);
  }
  elsif( /^edit$/ )
  {
    $s->before_update($context, $Upload);
  }
  else
  {
    die "Unknown mode: '$_'";
  }# end if()
}# end upload_start()


lib/Apache2/ASP/MediaManager.pm  view on Meta::CPAN

  $Upload->{$_} = $info->{$_} foreach keys(%$info);
  
  # Depending on the 'mode' parameter, we do different things:
#  local $_ = $context->request->Form->{mode};
  my $form = $context->request->Form;
  $form = $context->request->Form;
  if( $form->{mode} =~ /^create$/ )
  {
    $s->after_create($context, $Upload);
  }
  elsif(  $form->{mode} =~ /^edit$/ )
  {
    $s->after_update($context, $Upload);
  }
  else
  {
    die "Unknown mode: '$_'";
  }# end if()
}# end upload_end()


t/010-coverage/050-mediamanager.t  view on Meta::CPAN


  my ($file) = 'asp-upload-test.txt';
  $res = $api->ua->get("/handlers/upload01?file=$file");
  is( length($res->content) => (stat($upload_filename))[7], "Uploaded/Downloaded filesizes match" );
}


# Now update that file:
{
  my $uploadID = int(rand() * 1000) . ':' . int(rand() * 1000);
  my $res = $api->ua->upload("/handlers/upload01?mode=edit&uploadID=$uploadID", [
    uploaded_file => [ $upload_filename ]
  ]);
}


# Try downloading, but fail:
{
  my $res = $api->ua->get('/handlers/upload01?file=sdf.txt&do_fail_before_download=1');
  is(
    length( $res->content ) => 0,

t/010-coverage/050-mediamanager.t  view on Meta::CPAN

# Now update that file with one even larger > 1M:
{
  open my $ofh, '>', $upload_filename
    or die "Cannot open '$upload_filename' for writing: $!";
  for( 1...1025 )
  {
    print $ofh "."x1024, "\n";
  }# end for()
  close($ofh);
  my $uploadID = int(rand() * 1000) . ':' . int(rand() * 1000);
  my $res = $api->ua->upload("/handlers/upload01?mode=edit&uploadID=$uploadID", [
    uploaded_file => [ $upload_filename ]
  ]);
  
  my ($file) = 'asp-upload-test.txt';
  $res = $api->ua->get("/handlers/upload01?file=$file");
  is( length($res->content) => (stat($upload_filename))[7], "Uploaded/Downloaded filesizes match" );
}





( run in 0.359 second using v1.01-cache-2.11-cpan-de7293f3b23 )