mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
add test resize view and input value
This commit is contained in:
parent
d8856b541d
commit
3add949925
@ -23,4 +23,25 @@ export class PDFViewermock {
|
||||
currentPage = {
|
||||
renderingState: 3 as number
|
||||
};
|
||||
|
||||
_pages: any =
|
||||
[{
|
||||
width: 793,
|
||||
scale: 1,
|
||||
update: this.update
|
||||
}, {
|
||||
width: 793,
|
||||
scale: 1,
|
||||
update: this.update
|
||||
}, {
|
||||
width: 793,
|
||||
scale: 1,
|
||||
update: this.update
|
||||
}];
|
||||
|
||||
_currentPageNumber: number = 0;
|
||||
|
||||
update() {
|
||||
console.log('update page');
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,11 @@ export class EventMock {
|
||||
document.dispatchEvent(event);
|
||||
}
|
||||
|
||||
static resizeMobileView() {
|
||||
window.innerWidth = 320;
|
||||
window.innerHeight = 568;
|
||||
window.dispatchEvent(new Event('resize'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -237,5 +237,56 @@ describe('PdfViewer', () => {
|
||||
});
|
||||
});
|
||||
}));
|
||||
|
||||
it('Input page should move to the inserted page', inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
|
||||
return tcb
|
||||
.createAsync(PdfViewerComponent)
|
||||
.then((fixture) => {
|
||||
let component = fixture.componentInstance;
|
||||
|
||||
spyOn(component, 'getPDFJS').and.returnValue(new PDFJSmock());
|
||||
spyOn(component, 'initPDFViewer').and.callFake(() => {
|
||||
component.pdfViewer = new PDFViewermock();
|
||||
});
|
||||
|
||||
component.urlFile = 'fake-url-file';
|
||||
|
||||
component.ngOnChanges().then(() => {
|
||||
fixture.detectChanges();
|
||||
expect(component.displayPage).toBe(1);
|
||||
component.inputPage('4');
|
||||
fixture.detectChanges();
|
||||
expect(component.displayPage).toBe(4);
|
||||
}).catch((error) => {
|
||||
expect(error).toBeUndefined();
|
||||
});
|
||||
});
|
||||
}));
|
||||
});
|
||||
|
||||
describe('Rezize interaction', () => {
|
||||
|
||||
it('resize event should trigger setScaleUpdatePages', inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
|
||||
return tcb
|
||||
.createAsync(PdfViewerComponent)
|
||||
.then((fixture) => {
|
||||
let component = fixture.componentInstance;
|
||||
let element = fixture.nativeElement;
|
||||
|
||||
spyOn(component, 'getPDFJS').and.returnValue(new PDFJSmock());
|
||||
spyOn(component, 'initPDFViewer');
|
||||
spyOn(component, 'setScaleUpdatePages');
|
||||
|
||||
component.documentContainer = element.querySelector('#viewer-pdf-container');
|
||||
component.pdfViewer = new PDFViewermock();
|
||||
component.urlFile = 'fake-url-file';
|
||||
|
||||
EventMock.resizeMobileView();
|
||||
|
||||
expect(component.setScaleUpdatePages).toHaveBeenCalled();
|
||||
});
|
||||
}));
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -24,7 +24,7 @@ declare let __moduleName: string;
|
||||
moduleId: __moduleName,
|
||||
selector: 'pdf-viewer',
|
||||
templateUrl: './pdfViewer.component.html',
|
||||
styleUrls: ['./pdfViewer.component.css', './pdfViewerHost.component.css' ]
|
||||
styleUrls: ['./pdfViewer.component.css', './pdfViewerHost.component.css']
|
||||
})
|
||||
export class PdfViewerComponent {
|
||||
|
||||
@ -41,11 +41,9 @@ export class PdfViewerComponent {
|
||||
|
||||
pdfViewer: any;
|
||||
|
||||
currentScaleMode: string;
|
||||
currentScaleMode: string = 'auto';
|
||||
currentScale: number;
|
||||
|
||||
documentContainer: any;
|
||||
|
||||
MAX_AUTO_SCALE: number = 1.25;
|
||||
|
||||
ngOnChanges(changes) {
|
||||
@ -86,11 +84,11 @@ export class PdfViewerComponent {
|
||||
PDFJS.verbosity = 5;
|
||||
PDFJS.disableWorker = true;
|
||||
|
||||
this.documentContainer = document.getElementById('viewer-pdf-container');
|
||||
let documentContainer = document.getElementById('viewer-pdf-container');
|
||||
let viewer: any = document.getElementById('viewer-viewerPdf');
|
||||
|
||||
this.pdfViewer = new PDFJS.PDFViewer({
|
||||
container: this.documentContainer,
|
||||
container: documentContainer,
|
||||
viewer: viewer
|
||||
});
|
||||
|
||||
@ -105,11 +103,13 @@ export class PdfViewerComponent {
|
||||
scalePage(scaleMode) {
|
||||
this.currentScaleMode = scaleMode;
|
||||
|
||||
if (this.pdfViewer) {
|
||||
let documentContainer = document.getElementById('viewer-pdf-container');
|
||||
let currentPage = this.pdfViewer._pages[this.pdfViewer._currentPageNumber];
|
||||
|
||||
let padding = 20;
|
||||
let pageWidthScale = (this.documentContainer.clientWidth - padding) / currentPage.width * currentPage.scale;
|
||||
let pageHeightScale = (this.documentContainer.clientHeight - padding) / currentPage.width * currentPage.scale;
|
||||
let pageWidthScale = (documentContainer.clientWidth - padding) / currentPage.width * currentPage.scale;
|
||||
let pageHeightScale = (documentContainer.clientHeight - padding) / currentPage.width * currentPage.scale;
|
||||
|
||||
let scale;
|
||||
|
||||
@ -143,6 +143,7 @@ export class PdfViewerComponent {
|
||||
|
||||
this.setScaleUpdatePages(scale);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update all the pages with the newScale scale
|
||||
@ -154,7 +155,6 @@ export class PdfViewerComponent {
|
||||
|
||||
this.pdfViewer._pages.forEach(function (currentPage) {
|
||||
currentPage.update(newScale);
|
||||
console.log(currentPage.viewport);
|
||||
});
|
||||
|
||||
this.pdfViewer.update();
|
||||
@ -230,7 +230,7 @@ export class PdfViewerComponent {
|
||||
|
||||
if (!isNaN(pageInput) && pageInput > 0 && pageInput <= this.totalPages) {
|
||||
this.page = pageInput;
|
||||
|
||||
this.displayPage = this.page;
|
||||
this.pdfViewer.currentPageNumber = this.page;
|
||||
} else {
|
||||
this.displayPage = this.page;
|
||||
|
Loading…
x
Reference in New Issue
Block a user