Add pdf.js version to qute:version.
This commit is contained in:
parent
06f1d00083
commit
88d28e690e
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
"""Utilities to show various version informations."""
|
"""Utilities to show various version informations."""
|
||||||
|
|
||||||
|
import re
|
||||||
import sys
|
import sys
|
||||||
import glob
|
import glob
|
||||||
import os.path
|
import os.path
|
||||||
@ -34,6 +35,7 @@ from PyQt5.QtWidgets import QApplication
|
|||||||
|
|
||||||
import qutebrowser
|
import qutebrowser
|
||||||
from qutebrowser.utils import log, utils
|
from qutebrowser.utils import log, utils
|
||||||
|
from qutebrowser.browser import pdfjs
|
||||||
|
|
||||||
|
|
||||||
GPL_BOILERPLATE = """
|
GPL_BOILERPLATE = """
|
||||||
@ -183,6 +185,25 @@ def _os_info():
|
|||||||
return lines
|
return lines
|
||||||
|
|
||||||
|
|
||||||
|
def _pdfjs_version():
|
||||||
|
"""Get the pdf.js version.
|
||||||
|
|
||||||
|
Return:
|
||||||
|
A string with the version number.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
pdfjs_file = pdfjs.get_pdfjs_res('build/pdf.js').decode('utf-8')
|
||||||
|
except pdfjs.PDFJSNotFound:
|
||||||
|
return 'no'
|
||||||
|
else:
|
||||||
|
version_re = re.compile(r"^PDFJS\.version = '([^']+)';$", re.MULTILINE)
|
||||||
|
match = version_re.search(pdfjs_file)
|
||||||
|
if not match:
|
||||||
|
return 'unknown'
|
||||||
|
else:
|
||||||
|
return match.group(1)
|
||||||
|
|
||||||
|
|
||||||
def version(short=False):
|
def version(short=False):
|
||||||
"""Return a string with various version informations.
|
"""Return a string with various version informations.
|
||||||
|
|
||||||
@ -211,6 +232,7 @@ def version(short=False):
|
|||||||
lines += _module_versions()
|
lines += _module_versions()
|
||||||
|
|
||||||
lines += [
|
lines += [
|
||||||
|
'pdf.js: {}'.format(_pdfjs_version()),
|
||||||
'Webkit: {}'.format(qWebKitVersion()),
|
'Webkit: {}'.format(qWebKitVersion()),
|
||||||
'Harfbuzz: {}'.format(os.environ.get('QT_HARFBUZZ', 'system')),
|
'Harfbuzz: {}'.format(os.environ.get('QT_HARFBUZZ', 'system')),
|
||||||
'SSL: {}'.format(QSslSocket.sslLibraryVersionString()),
|
'SSL: {}'.format(QSslSocket.sslLibraryVersionString()),
|
||||||
|
@ -34,6 +34,7 @@ import pytest
|
|||||||
|
|
||||||
import qutebrowser
|
import qutebrowser
|
||||||
from qutebrowser.utils import version
|
from qutebrowser.utils import version
|
||||||
|
from qutebrowser.browser import pdfjs
|
||||||
|
|
||||||
|
|
||||||
class GitStrSubprocessFake:
|
class GitStrSubprocessFake:
|
||||||
@ -529,6 +530,39 @@ class TestOsInfo:
|
|||||||
version._os_info()
|
version._os_info()
|
||||||
|
|
||||||
|
|
||||||
|
class TestPDFJSVersion:
|
||||||
|
|
||||||
|
"""Tests for _pdfjs_version."""
|
||||||
|
|
||||||
|
def test_not_found(self, mocker):
|
||||||
|
mocker.patch('qutebrowser.utils.version.pdfjs.get_pdfjs_res',
|
||||||
|
side_effect=pdfjs.PDFJSNotFound)
|
||||||
|
assert version._pdfjs_version() == 'no'
|
||||||
|
|
||||||
|
def test_unknown(self, monkeypatch):
|
||||||
|
monkeypatch.setattr('qutebrowser.utils.version.pdfjs.get_pdfjs_res',
|
||||||
|
lambda path: b'foobar')
|
||||||
|
assert version._pdfjs_version() == 'unknown'
|
||||||
|
|
||||||
|
def test_known(self, monkeypatch):
|
||||||
|
pdfjs_code = textwrap.dedent("""
|
||||||
|
// Initializing PDFJS global object (if still undefined)
|
||||||
|
if (typeof PDFJS === 'undefined') {
|
||||||
|
(typeof window !== 'undefined' ? window : this).PDFJS = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
PDFJS.version = '1.2.109';
|
||||||
|
PDFJS.build = '875588d';
|
||||||
|
|
||||||
|
(function pdfjsWrapper() {
|
||||||
|
// Use strict in our context only - users might not want it
|
||||||
|
'use strict';
|
||||||
|
""").strip().encode('utf-8')
|
||||||
|
monkeypatch.setattr('qutebrowser.utils.version.pdfjs.get_pdfjs_res',
|
||||||
|
lambda path: pdfjs_code)
|
||||||
|
assert version._pdfjs_version() == '1.2.109'
|
||||||
|
|
||||||
|
|
||||||
class FakeQSslSocket:
|
class FakeQSslSocket:
|
||||||
|
|
||||||
"""Fake for the QSslSocket Qt class.
|
"""Fake for the QSslSocket Qt class.
|
||||||
@ -571,6 +605,7 @@ def test_version_output(git_commit, harfbuzz, frozen, short, stubs,
|
|||||||
'qVersion': lambda: 'QT RUNTIME VERSION',
|
'qVersion': lambda: 'QT RUNTIME VERSION',
|
||||||
'PYQT_VERSION_STR': 'PYQT VERSION',
|
'PYQT_VERSION_STR': 'PYQT VERSION',
|
||||||
'_module_versions': lambda: ['MODULE VERSION 1', 'MODULE VERSION 2'],
|
'_module_versions': lambda: ['MODULE VERSION 1', 'MODULE VERSION 2'],
|
||||||
|
'_pdfjs_version': lambda: 'PDFJS VERSION',
|
||||||
'qWebKitVersion': lambda: 'WEBKIT VERSION',
|
'qWebKitVersion': lambda: 'WEBKIT VERSION',
|
||||||
'QSslSocket': FakeQSslSocket('SSL VERSION'),
|
'QSslSocket': FakeQSslSocket('SSL VERSION'),
|
||||||
'platform.platform': lambda: 'PLATFORM',
|
'platform.platform': lambda: 'PLATFORM',
|
||||||
@ -613,6 +648,7 @@ def test_version_output(git_commit, harfbuzz, frozen, short, stubs,
|
|||||||
Desktop: DESKTOP
|
Desktop: DESKTOP
|
||||||
MODULE VERSION 1
|
MODULE VERSION 1
|
||||||
MODULE VERSION 2
|
MODULE VERSION 2
|
||||||
|
pdf.js: PDFJS VERSION
|
||||||
Webkit: WEBKIT VERSION
|
Webkit: WEBKIT VERSION
|
||||||
Harfbuzz: {harfbuzz}
|
Harfbuzz: {harfbuzz}
|
||||||
SSL: SSL VERSION
|
SSL: SSL VERSION
|
||||||
|
Loading…
Reference in New Issue
Block a user