#-------------------------------------------------------------------
# WebGUI is Copyright 2001-2007 Plain Black Corporation.
#-------------------------------------------------------------------
# Please read the legal notices (docs/legal.txt) and the license
# (docs/license.txt) that came with this distribution before using
# this software.
#-------------------------------------------------------------------
# http://www.plainblack.com                     info@plainblack.com
#-------------------------------------------------------------------

use FindBin;
use strict;
use File::Spec;
use lib "$FindBin::Bin/../../lib";

use Data::Dumper;

##The goal of this test is to test the creation of SyndicatedContent Wobjects.

use WebGUI::Test;
use WebGUI::Session;
use Test::More tests => 12; # increment this value for each test you create
use WebGUI::Asset::Wobject::SyndicatedContent;

my $session = WebGUI::Test->session;

# Do our work in the import node
my $node = WebGUI::Asset->getImportNode($session);

my $versionTag = WebGUI::VersionTag->getWorking($session);
$versionTag->set({name=>"SyndicatedContent Test"});
my $syndicated_content = $node->addChild({className=>'WebGUI::Asset::Wobject::SyndicatedContent'});

# Test for a sane object type
isa_ok($syndicated_content, 'WebGUI::Asset::Wobject::SyndicatedContent');


# Test to see if we can set new values
my $newSyndicatedContentSettings = {
	cacheTimeout => 124,
	templateId   => "PBtmpl0000000000000084",
	rssUrl      => "http://morningmonologue.wordpress.com/feed/",
};
$syndicated_content->update($newSyndicatedContentSettings);

foreach my $newSetting (keys %{$newSyndicatedContentSettings}) {
	is ($syndicated_content->get($newSetting), $newSyndicatedContentSettings->{$newSetting}, "updated $newSetting is ".$newSyndicatedContentSettings->{$newSetting});
}

# Can we get the rss url?
ok($syndicated_content->getRssUrl, 'getRSSUrl returns something.');
ok($syndicated_content->getContentLastModified, 'getContentLastModified returns something.');

# Test max headlines parsed from feed
my $max_headlines = $syndicated_content->_getMaxHeadlines;
ok($syndicated_content->_getMaxHeadlines, "Max Headlines returned a value [$max_headlines]");

my $validated_urls = $syndicated_content->_getValidatedUrls;
ok($syndicated_content->_getValidatedUrls, "Validated Urls returned a value [$validated_urls]");

# Lets make sure the view method returns something.
is ($syndicated_content->{_viewTemplate}, undef, 'internal template cache unset until prepareView is called');

$syndicated_content->prepareView;
isnt ($syndicated_content->{_viewTemplate}, undef, 'internal template cache set by prepare view');
isa_ok ($syndicated_content->{_viewTemplate}, 'WebGUI::Asset::Template', 'internal template cache');

my $output = $syndicated_content->view('2.0');
isnt ($output, "", 'view method returns something');




END {
	# Clean up after thy self
	$versionTag->rollback();
}

