Google-RestApi
view release on metacpan or search on metacpan
t/unit/Test/Google/RestApi/DocsApi1/Document.pm view on Meta::CPAN
ok $result->{replies}, 'Result contains replies';
return;
}
sub submit_empty : Tests(1) {
my $self = shift;
my $doc = $self->_mock_document();
my $result = $doc->submit_requests();
ok !$result, 'submit_requests with no queued requests returns undef';
return;
}
sub replace_all_text : Tests(4) {
my $self = shift;
my $doc = $self->_mock_document();
$doc->replace_all_text(find => 'old', replacement => 'new');
my @requests = $doc->batch_requests();
is $requests[0]->{replaceAllText}->{replaceText}, 'new', 'Replace all text request is correct';
is $requests[0]->{replaceAllText}->{containsText}->{matchCase}, JSON::MaybeXS::true(), 'match_case defaults to true';
# Reset and test with match_case => 0
$doc = $self->_mock_document();
$doc->replace_all_text(find => 'old', replacement => 'new', match_case => 0);
@requests = $doc->batch_requests();
is $requests[0]->{replaceAllText}->{containsText}->{matchCase}, JSON::MaybeXS::false(), 'match_case false produces JSON false';
is $requests[0]->{replaceAllText}->{containsText}->{text}, 'old', 'Find text is correct';
return;
}
sub insert_text_with_segment_id : Tests(2) {
my $self = shift;
my $doc = $self->_mock_document();
$doc->insert_text(text => 'Header text', index => 1, segment_id => 'kix.abc123');
my @requests = $doc->batch_requests();
is $requests[0]->{insertText}->{location}->{segmentId}, 'kix.abc123',
'insert_text includes segmentId when provided';
is $requests[0]->{insertText}->{text}, 'Header text', 'insert_text text is correct';
return;
}
sub delete_content : Tests(2) {
my $self = shift;
my $doc = $self->_mock_document();
my %range = (startIndex => 1, endIndex => 10);
$doc->delete_content(range => \%range);
my @requests = $doc->batch_requests();
is $requests[0]->{deleteContentRange}->{range}->{startIndex}, 1, 'delete_content startIndex is correct';
is $requests[0]->{deleteContentRange}->{range}->{endIndex}, 10, 'delete_content endIndex is correct';
return;
}
sub update_text_style : Tests(3) {
my $self = shift;
my $doc = $self->_mock_document();
my %range = (startIndex => 1, endIndex => 5);
my %style = (bold => JSON::MaybeXS::true());
$doc->update_text_style(range => \%range, style => \%style, fields => 'bold');
my @requests = $doc->batch_requests();
is $requests[0]->{updateTextStyle}->{fields}, 'bold', 'update_text_style fields is correct';
is $requests[0]->{updateTextStyle}->{textStyle}->{bold}, JSON::MaybeXS::true(), 'update_text_style style is correct';
is $requests[0]->{updateTextStyle}->{range}->{startIndex}, 1, 'update_text_style range is correct';
return;
}
sub update_paragraph_style : Tests(3) {
my $self = shift;
my $doc = $self->_mock_document();
my %range = (startIndex => 1, endIndex => 10);
my %style = (alignment => 'CENTER');
$doc->update_paragraph_style(range => \%range, style => \%style, fields => 'alignment');
my @requests = $doc->batch_requests();
is $requests[0]->{updateParagraphStyle}->{fields}, 'alignment', 'update_paragraph_style fields is correct';
is $requests[0]->{updateParagraphStyle}->{paragraphStyle}->{alignment}, 'CENTER', 'update_paragraph_style style is correct';
is $requests[0]->{updateParagraphStyle}->{range}->{startIndex}, 1, 'update_paragraph_style range is correct';
return;
}
sub insert_table : Tests(3) {
my $self = shift;
my $doc = $self->_mock_document();
$doc->insert_table(index => 1, rows => 3, columns => 4);
my @requests = $doc->batch_requests();
is $requests[0]->{insertTable}->{rows}, 3, 'insert_table rows is correct';
is $requests[0]->{insertTable}->{columns}, 4, 'insert_table columns is correct';
is $requests[0]->{insertTable}->{location}->{index}, 1, 'insert_table location is correct';
return;
}
sub insert_table_with_segment_id : Tests(1) {
my $self = shift;
my $doc = $self->_mock_document();
$doc->insert_table(index => 1, rows => 2, columns => 2, segment_id => 'kix.seg1');
my @requests = $doc->batch_requests();
is $requests[0]->{insertTable}->{location}->{segmentId}, 'kix.seg1',
'insert_table includes segmentId when provided';
return;
}
sub insert_inline_image : Tests(2) {
my $self = shift;
my $doc = $self->_mock_document();
$doc->insert_inline_image(index => 1, uri => 'https://example.com/img.png');
my @requests = $doc->batch_requests();
is $requests[0]->{insertInlineImage}->{uri}, 'https://example.com/img.png', 'insert_inline_image uri is correct';
ok !exists $requests[0]->{insertInlineImage}->{objectSize}, 'No objectSize when width/height omitted';
return;
}
sub insert_inline_image_with_size : Tests(3) {
my $self = shift;
my $doc = $self->_mock_document();
my %width = (magnitude => 200, unit => 'PT');
my %height = (magnitude => 100, unit => 'PT');
$doc->insert_inline_image(index => 1, uri => 'https://example.com/img.png', width => \%width, height => \%height);
my @requests = $doc->batch_requests();
ok $requests[0]->{insertInlineImage}->{objectSize}, 'objectSize present when width/height provided';
t/unit/Test/Google/RestApi/DocsApi1/Document.pm view on Meta::CPAN
my $doc = $self->_mock_document();
$doc->delete_footer('footer_id_123');
my @requests = $doc->batch_requests();
is $requests[0]->{deleteFooter}->{footerId}, 'footer_id_123', 'delete_footer ID is correct';
return;
}
sub insert_page_break : Tests(2) {
my $self = shift;
my $doc = $self->_mock_document();
$doc->insert_page_break(index => 5);
my @requests = $doc->batch_requests();
is $requests[0]->{insertPageBreak}->{location}->{index}, 5, 'insert_page_break index is correct';
ok !exists $requests[0]->{insertPageBreak}->{location}->{segmentId},
'No segmentId when omitted';
return;
}
sub insert_page_break_with_segment_id : Tests(1) {
my $self = shift;
my $doc = $self->_mock_document();
$doc->insert_page_break(index => 5, segment_id => 'kix.seg1');
my @requests = $doc->batch_requests();
is $requests[0]->{insertPageBreak}->{location}->{segmentId}, 'kix.seg1',
'insert_page_break includes segmentId when provided';
return;
}
sub insert_section_break : Tests(3) {
my $self = shift;
my $doc = $self->_mock_document();
$doc->insert_section_break(index => 10, type => 'NEXT_PAGE');
my @requests = $doc->batch_requests();
is $requests[0]->{insertSectionBreak}->{sectionType}, 'NEXT_PAGE', 'insert_section_break type is correct';
is $requests[0]->{insertSectionBreak}->{location}->{index}, 10, 'insert_section_break index is correct';
ok !exists $requests[0]->{insertSectionBreak}->{location}->{segmentId},
'No segmentId when omitted';
return;
}
sub insert_section_break_with_segment_id : Tests(1) {
my $self = shift;
my $doc = $self->_mock_document();
$doc->insert_section_break(index => 10, type => 'NEXT_PAGE', segment_id => 'kix.seg1');
my @requests = $doc->batch_requests();
is $requests[0]->{insertSectionBreak}->{location}->{segmentId}, 'kix.seg1',
'insert_section_break includes segmentId when provided';
return;
}
sub update_document_style : Tests(2) {
my $self = shift;
my $doc = $self->_mock_document();
my %style = (marginTop => { magnitude => 72, unit => 'PT' });
$doc->update_document_style(style => \%style, fields => 'marginTop');
my @requests = $doc->batch_requests();
is $requests[0]->{updateDocumentStyle}->{fields}, 'marginTop', 'update_document_style fields is correct';
is $requests[0]->{updateDocumentStyle}->{documentStyle}->{marginTop}->{magnitude}, 72,
'update_document_style style is correct';
return;
}
sub accessors : Tests(2) {
my $self = shift;
my $doc = $self->_mock_document();
isa_ok $doc->docs_api(), 'Google::RestApi::DocsApi1', 'docs_api returns DocsApi1';
isa_ok $doc->rest_api(), 'Google::RestApi', 'rest_api returns RestApi';
return;
}
sub get_with_fields : Tests(1) {
my $self = shift;
my $doc = $self->_mock_document();
my $result = $doc->get(fields => 'title');
ok $result, 'Get with fields returns data';
return;
}
1;
( run in 0.514 second using v1.01-cache-2.11-cpan-ceb78f64989 )