Files
third_party_jsframework/runtime/main/extend/systemplugin/inputMethodEngine.js
T
wangdengjia 8b01c6866b IssueNo:#I4F4V7
Description:add input js api mock
Sig:jsframework
Feature or Bugfix:Bugfix
Binary Source:No

Signed-off-by: wangdengjia <wangdengjia@huawei.com>
Change-Id: Ic0f030c38b4be925c61289bb6e9c5ad9d0e12f60
Signed-off-by: wangdengjia <wangdengjia@huawei.com>
Signed-off-by: root <root@W00584994.china.huawei.com>
2021-10-25 20:57:20 +08:00

407 lines
19 KiB
JavaScript

import { paramMock } from "./utils"
const NOTIFY = "[PC Preview] unknow"
const Properties = [
'ENTER_KEY_TYPE_NEXT',
'ENTER_KEY_TYPE_PREVIOUS',
'ENTER_KEY_TYPE_UNSPECIFIED',
'ENTER_KEY_TYPE_SEARCH',
'ENTER_KEY_TYPE_GO',
'ENTER_KEY_TYPE_SEND',
'ENTER_KEY_TYPE_DONE',
'DISPLAY_MODE_PART',
'DISPLAY_MODE_FULL',
'OPTION_AUTO_CAP_CHARACTERS',
'OPTION_AUTO_CAP_WORDS',
'OPTION_AUTO_CAP_SENTENCES',
'OPTION_NO_FULLSCREEN',
'OPTION_ASCII',
'OPTION_NONE',
'OPTION_MULTI_LINE',
'FLAG_SINGLE_LINE',
'FLAG_SELECTING',
'PATTERN_TEXT',
'PATTERN_NUMBER',
'PATTERN_NULL',
'PATTERN_PHONE',
'PATTERN_DATETIME',
'PATTERN_URI',
'PATTERN_EMAIL',
'PATTERN_PASSWORD'
]
export function mockInputMethodEngine() {
const EditingText = {
textContent: "[PC Preview] unknow textContent",
offset: 1,
changedStart: 2,
changedEnd: 3,
selectionStart: 4,
selectionEnd: 5,
additionalBitFlags: 6,
prompt: "[PC Preview] unknow prompt"
}
const EditingCapability = {
maxLines: 1,
maxChars:2
}
const EditorAttribute = {
inputPattern: 1,
enterKeyType: 2,
inputOption: 3
}
const RichContent = {
contentURI: "[PC Preview] unknow contentURI",
linkURI: "[PC Preview] unknow linkURI",
mimeTypes: "[PC Preview] unknow mimeTypes",
detail: "[PC Preview] unknow detail"
}
const KeyboardControllerMock = {
setDisplayMode: function (...args) {
console.warn("KeyboardController.setDisplayMode interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
getDisplayMode: function (...args) {
console.warn("KeyboardController.getDisplayMode interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
} else {
return new Promise((resolve, reject) => {
resolve(paramMock.paramNumberMock);
})
}
},
hideKeyboard: function (...args) {
console.warn("KeyboardController.hideKeyboard interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
toNextInputMethod: function (...args) {
console.warn("KeyboardController.toNextInputMethod interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
getScreenOrientation: function (...args) {
console.warn("KeyboardController.getScreenOrientation interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
} else {
return new Promise((resolve, reject) => {
resolve(paramMock.paramNumberMock);
})
}
}
}
const TextInputClientMock = {
getEditorAttribute: function (...args) {
console.warn("TextInputClientMock.getEditorAttribute interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock, EditorAttribute);
} else {
return new Promise((resolve, reject) => {
resolve(EditorAttribute);
})
}
},
insertText: function (...args) {
console.warn("TextInputClientMock.insertText interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
insertRichContent: function (...args) {
console.warn("TextInputClientMock.insertRichContent interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
deleteBackward: function (...args) {
console.warn("TextInputClientMock.deleteBackward interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
deleteForward: function (...args) {
console.warn("TextInputClientMock.deleteForward interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
getForward: function (...args) {
console.warn("TextInputClientMock.getForward interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramStringMock);
} else {
return new Promise((resolve, reject) => {
resolve(paramMock.paramStringMock);
})
}
},
getBackward: function (...args) {
console.warn("TextInputClientMock.getBackward interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramStringMock);
} else {
return new Promise((resolve, reject) => {
resolve(paramMock.paramStringMock);
})
}
},
getEditingText: function (...args) {
console.warn("TextInputClientMock.getEditingText interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock, EditingText);
} else {
return new Promise((resolve, reject) => {
resolve(EditingText);
})
}
},
sendKeyEvent: function (...args) {
console.warn("TextInputClientMock.sendKeyEvent interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
sendKeyFunction: function (...args) {
console.warn("TextInputClientMock.sendKeyFunction interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
selectText: function (...args) {
console.warn("TextInputClientMock.selectText interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
requestCurrentCursorContext: function (...args) {
console.warn("TextInputClientMock.requestCurrentCursorContext interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
getAutoCapitalizeMode: function (...args) {
console.warn("TextInputClientMock.getAutoCapitalizeMode interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
} else {
return new Promise((resolve, reject) => {
resolve(paramMock.paramNumberMock);
})
}
},
reviseText: function (...args) {
console.warn("TextInputClientMock.reviseText interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
markText: function (...args) {
console.warn("TextInputClientMock.markText interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
unmarkText: function (...args) {
console.warn("TextInputClientMock.unmarkText interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
},
replaceMarkedText: function (...args) {
console.warn("TextInputClientMock.replaceMarkedText interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
args[len - 1].call(this, paramMock.businessErrorMock);
} else {
return new Promise((resolve, reject) => {
resolve();
})
}
}
}
const InputMethodEngineMock = {
on: function (...args) {
console.warn("InputMethodEngine.on interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
if (args[0] == 'configurationUpdate') {
args[len - 1].call(this, paramMock.paramObjectMock);
} else if (args[0] == 'inputStart') {
args[len - 1].call(this, KeyboardControllerMock, TextInputClientMock);
} else if (args[0] == 'inputStop' || args[0] == 'keyboardShow' || args[0] == 'directionChange' || args[0] == 'keyboardHide') {
args[len - 1].call(this);
}
}
},
off: function (...args) {
console.warn("InputMethodEngine.off interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
if (args[0] == 'configurationUpdate') {
args[len - 1].call(this, paramMock.paramObjectMock);
} else if (args[0] == 'inputStart') {
args[len - 1].call(this, KeyboardControllerMock, TextInputClientMock);
} else if (args[0] == 'inputStop' || args[0] == 'keyboardShow' || args[0] == 'directionChange' || args[0] == 'keyboardHide') {
args[len - 1].call(this);
}
}
}
}
const KeyboardDelegateMock = {
on: function (...args) {
console.warn("KeyboardDelegate.on interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
if (args[0] == 'keyDown' || args[0] == 'keyUp') {
args[len - 1].call(this, paramMock.paramObjectMock);
} else if (args[0] == 'selectionChange') {
args[len - 1].call(this, paramMock.paramNumberMock, paramMock.paramNumberMock, paramMock.paramNumberMock, paramMock.paramNumberMock);
} else if (args[0] == 'cursorContextChange') {
args[len - 1].call(this, paramMock.paramNumberMock, paramMock.paramNumberMock, paramMock.paramNumberMock);
} else if (args[0] == 'textChange') {
args[len - 1].call(this, paramMock.paramStringMock);
}
}
},
off: function (...args) {
console.warn("KeyboardDelegate.off interface mocked in the Previewer. How this interface works on" +
" the Previewer may be different from that on a real device.")
const len = args.length
if (typeof args[len - 1] === 'function') {
if (args[0] == 'keyDown' || args[0] == 'keyUp') {
args[len - 1].call(this, paramMock.paramObjectMock);
} else if (args[0] == 'selectionChange') {
args[len - 1].call(this, paramMock.paramNumberMock, paramMock.paramNumberMock, paramMock.paramNumberMock, paramMock.paramNumberMock);
} else if (args[0] == 'cursorContextChange') {
args[len - 1].call(this, paramMock.paramNumberMock, paramMock.paramNumberMock, paramMock.paramNumberMock);
} else if (args[0] == 'textChange') {
args[len - 1].call(this, paramMock.paramStringMock);
}
}
},
}
global.systemplugin.inputMethodEngine = {
getInputMethodEngine: function () {
console.warn("inputMethodEngine.getInputMethodEngine interface mocked in the Previewer. How this interface works" +
" on the Previewer may be different from that on a real device.")
return InputMethodEngineMock;
},
createKeyboardDelegate: function () {
console.warn("inputMethodEngine.createKeyboardDelegate interface mocked in the Previewer. How this interface works" +
" on the Previewer may be different from that on a real device.")
return KeyboardDelegateMock;
}
}
for(let Property of Properties) {
global.systemplugin.inputMethodEngine[Property] = NOTIFY + " " + Property
}
}