Renard-Curie

 view release on metacpan or  search on metacpan

t/Renard/Curie/App.t  view on Meta::CPAN


subtest "Process arguments" => sub {
	subtest "Process arguments for PDF file" => sub {
		my $pdf_ref_path = try {
			Renard::Block::Format::PDF::Devel::TestHelper->pdf_reference_document_path;
		} catch {
			plan skip_all => "$_";
		};
		my $c = CurieTestHelper->get_app_container;
		my $app = $c->app;
		local @ARGV = ($pdf_ref_path);
		$app->process_arguments;
		like $c->main_window->window->get_title, qr/\Q$pdf_ref_path\E/, "Window title contains path to file";
		undef $app;
	};

	subtest "Process no arguments" => sub {
		my $app = CurieTestHelper->get_app_container->app;
		local @ARGV = ();
		lives_ok {
			$app->process_arguments;
		} 'Processes no arguments fine';
		undef $app;
	};

	subtest "Process arguments for non-existent file" => sub {
		my $non_existent_filename = File::Temp::tmpnam();
		local @ARGV = ($non_existent_filename);
		my $app = CurieTestHelper->get_app_container->app;
		throws_ok {
			$app->process_arguments;
		} 'Renard::Incunabula::Common::Error::IO::FileNotFound', "Throws exception when file not found";
		undef $app;
	};

	subtest "Process --help flag" => sub {
		my $app = CurieTestHelper->get_app_container->app;
		local @ARGV = qw(--help);
		trap { $app->process_arguments; };
		like( $trap->stdout, qr/--help/, 'Shows usage text' );
		is( $trap->exit, 0, 'Exits successfully after call' );
		undef $app;
	};

	subtest "Process --version flag" => sub {
		my $app = CurieTestHelper->get_app_container->app;
		local @ARGV = qw(--version);
		trap { $app->process_arguments; };
		like( $trap->stdout, qr/Project Renard Curie/, 'Prints full name of application' );
		is( $trap->exit, 0, 'Exits successfully after call' );
		undef $app;
	};

	subtest "Process --short-version flag" => sub {
		my $app = CurieTestHelper->get_app_container->app;
		local @ARGV = qw(--short-version);
		trap { $app->process_arguments; };
		chomp( my $version_or_dev = $trap->stdout );
		note "Got version: $version_or_dev";
		if( $version_or_dev =~ qr/^dev$/ ) {
			pass( 'Prints out dev as version' );
		} else {
			lives_ok {
				version->parse($version_or_dev);
			} "version parses";
		}



( run in 1.537 second using v1.01-cache-2.11-cpan-49f99fa48dc )