qpython-android / qpysl4a

QPySL4A is the Script Layer for Android (SL4A) Library for QPython. It allows you to program to drive Android to work.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TestCases Of androidhelp APIs

riverfor opened this issue · comments

All APIs need to test

Please tell them one by one and give the results.

It may help for testing:
http://qr.qpy.io/

I have pushed one testcase (Testcase for setClipboard & getClipboard) as a sample.

Testcase for AndroidFacade

Test Result

Clipboard APIs

  • √ setClipboard(text)
  • √ getClipboard()

Intent & startActivity APIs

  • √ startActivity(action, uri, type, extras, wait, packagename, classname)
  • makeIntent(action, uri, type, extras, categories, packagename, classname, flags)
  • getIntent()
  • startActivityForResult(action, uri, type, extras, packagename, classname)
  • startActivityForResultIntent(intent)
  • startActivityIntent(intent, wait)

SendBroadcast APIs

  • sendBroadcast(action, uri, type, extras, packagename, classname)
  • sendBroadcastIntent(intent)

Vibrate

  • √ vibrate(duration)

NetworkStatus

  • √ getNetworkStatus()

PackageVersion APIs

  • requiredVersion(requiredVersion)
  • getPackageVersionCode(packageName)
  • getPackageVersion(packageName)

System APIs

  • √ getConstants(classname)
  • √ environment()
  • log(message)

SendEmail

  • √ sendEmail(to, subject, body, attachmentUri)

Toast, getInput, getPassword, notify APIs

  • √ makeToast(message)
  • getInput(title, message)(deprecated, please use dialogGetInput)
  • getPassword(title, message)(deprecated, please use dialogGetPassword)
  • notify(title, message, url)

Test Scripts

Testcase for SmsFacade

Test Result

  • √ smsGetMessageCount
  • √ smsGetMessages
  • √ smsSend (It requires SMS_SEND permission)
  • √ dialogGetInput
  • × smsMarkMessageRead (× since API 23)
  • × smsDeleteMessage (× since API 23)
  • smsGetMessageIds
  • smsGetMessageById
  • smsGetAttributes

Test Scripts

FAQ

Q: My QPython which is installed from google play doesn't have SMS permission.
A: Please upgrade QPython within github to get SMS permission, get qpy3_2020-01-21_google.apk
from https://github.com/qpython-android/qpython3/releases/tag/2.1.0

Q: Why can't I mark sms as read?
A: It looks like that the WRITE_SMS is also no longer available on Android (since API 23)

Related Links

Testcase for BatteryManagerFacade

Test Result

  • √ batteryStartMonitoring
  • √ batteryStopMonitoring
  • √ readBatteryData
  • √ batteryGetHealth
  • √ batteryGetStatus
  • √ batteryGetPlugType
  • √ batteryCheckPresent
  • √ batteryGetLevel
  • √ batteryGetVoltage
  • √ batteryGetTemperature
  • √ batteryGetTechnology

Test Script

Testcase for LocationFacade

Test Result

Providers APIs

  • √ locationProviders
  • √ locationProviderEnabled

Location APIs

  • √ startLocating
  • √ stopLocating
  • √ readLocation
  • √ getLastKnownLocation

GEO

  • √ geocode

Test Code

Testcase for ContactsFacade

Test Result

  • √ contactsGetCount()
  • √ pickContact()
  • √ pickPhone()
  • √ contactsGetAttributes()
  • √ contactsGetIds()
  • √ queryContent(uri, attributes, selection, selectionArgs, order)
  • √ contactsGetById(id)
  • queryAttributes(uri)
  • contactsGet(attributes)

Test Script

Testcase for Phonefacade

Test Result

PhoneStat APIs

  • √ startTrackingPhoneState()
  • √ stopTrackingPhoneState()
  • √ readPhoneState()

Call & Dia APIs

  • √ phoneCallNumber(number)
  • √ phoneDialNumber(number)
  • phoneCall(uri)
  • phoneDial(uri)

Get information APIs

  • √ getCellLocation()
  • √ getNetworkOperator()
  • √ getNetworkOperatorName()
  • getNetworkType()
  • getPhoneType()
  • √ getSimCountryIso()
  • √ getSimOperator()
  • √ getSimOperatorName()
  • getSimSerialNumber()
  • √ getSimState()
  • getSubscriberId()
  • √ getVoiceMailAlphaTag()
  • √ getVoiceMailNumber()
  • √ checkNetworkRoaming()
  • getDeviceId()
  • √ getDeviceSoftwareVersion()
  • √ getLine1Number()
  • √ getNeighboringCellInfo()

Test Scripts

TestCase for UiFacade

Test Results

Dialog

  • dialogCreateInput(title, message, defaultText, inputType)
  • dialogCreatePassword(title, message)
  • dialogGetInput(title, message, defaultText)
  • dialogGetPassword(title, message)
  • dialogCreateSeekBar(start, maximum, title)
  • dialogCreateTimePicker(hour, minute, is24hour)
  • dialogCreateDatePicker(year, month, day)

NFCBeamMessage

  • dialogCreateNFCBeamMaster(title, message, inputType)
  • NFCBeamMessage(content, title, message)
  • dialogCreateNFCBeamSlave(title, message)

Progress

  • dialogCreateSpinnerProgress(message, maximumProgress)
  • dialogSetCurrentProgress(current)
  • dialogSetMaxProgress(max)
  • dialogCreateHorizontalProgress(title, message, maximumProgress)

Alert

  • dialogCreateAlert(title, message)

Dialog Control

  • dialogSetPositiveButtonText(text)
  • dialogSetNegativeButtonText(text)
  • dialogSetNeutralButtonText(text)
  • dialogSetItems(items)
  • dialogSetSingleChoiceItems(items, selected)
  • dialogSetMultiChoiceItems(items, selected)
  • addContextMenuItem(label, event, eventData)
  • addOptionsMenuItem(label, event, eventData, iconName)
  • dialogGetResponse()
  • dialogGetSelectedItems()
  • dialogDismiss()
  • dialogShow()

Layout

  • fullShow(layout)
  • fullDismiss()
  • fullQuery()
  • fullQueryDetail(id)
  • fullSetProperty(id)
  • fullSetList(id, list)
  • fullKeyOverride(keycodes, enable)

WebView

  • webViewShow()

Test Scripts

TestCase for MediaPlayerFacade

Test Result

  • mediaPlay(url, tag, play)
  • mediaPlayPause(tag)
  • mediaPlayStart(tag)
  • mediaPlayClose(tag)
  • mediaIsPlaying(tag)
  • mediaPlaySetLooping(enabled, tag)
  • mediaPlaySeek(msec, tag)

TestCase for PreferencesFacade

Test Result

  • prefGetValue(key, filename)
  • prefPutValue(key, value, filename)
  • prefGetAll(filename)

TestCase for QPyInterfaceFacade

Test Result

  • √ executeQPy(script)

Test Script

TestCase for TextToSpeechFacade

Test Result

  • ttsSpeak(message)
  • ttsIsSpeaking()

TestCase for EyesFreeFacade

Test Result

  • ttsSpeak(message)

TestCase for BluetoothFacade

Test Result

  • bluetoothActiveConnections()
  • bluetoothWriteBinary(base64, connID)
  • bluetoothReadBinary(bufferSize, connID)
  • bluetoothConnect(uuid, address)
  • bluetoothAccept(uuid, timeout)
  • bluetoothMakeDiscoverable(duration)
  • bluetoothWrite(ascii, connID)
  • bluetoothReadReady(connID)
  • bluetoothRead(bufferSize, connID)
  • bluetoothReadLine(connID)
  • bluetoothGetRemoteDeviceName(address)
  • bluetoothGetLocalName()
  • bluetoothSetLocalName(name)
  • bluetoothGetScanMode()
  • bluetoothGetConnectedDeviceName(connID)
  • checkBluetoothState()
  • toggleBluetoothState(enabled, prompt)
  • bluetoothStop(connID)
  • bluetoothStop(connID)
  • bluetoothDiscoveryStart()
  • bluetoothDiscoveryCancel()
  • bluetoothIsDiscovering()

TestCase for SignalStrengthFacade

Test Result

  • startTrackingSignalStrengths()
  • readSignalStrengths()
  • stopTrackingSignalStrengths()

TestCase for WebCamFacade

Test Result

  • webcamStart(resolutionLevel, jpegQuality, port)
  • webcamAdjustQuality(resolutionLevel, jpegQuality)
  • cameraStartPreview(resolutionLevel, jpegQuality, filepath)
  • cameraStopPreview()

TestCase for USBHostSerialFacade

Test Result

  • usbserialGetDeviceList()
  • usbserialDisconnect(connID)
  • usbserialActiveConnections()
  • usbserialWriteBinary(base64, connID)
  • usbserialReadBinary(bufferSize, connID)
  • usbserialConnect(hash, options)
  • usbserialHostEnable()
  • usbserialWrite(String ascii, String connID)
  • usbserialReadReady(connID)
  • usbserialRead(connID, bufferSize)
  • usbserialGetDeviceName(connID)

TestCase for ApplicationManagerFacade

Test Result

  • √ getLaunchableApplications()
  • √ getRunningPackages() (only self)
  • √ launch(classname) (only self's className)
  • forceStopPackage(packageName) (Need KILL_BACKGROUND_PROCESSES)

Test Script

TestCase for CameraFacade

Test Result

  • √ cameraCapturePicture(targetPath)
  • × cameraInteractiveCapturePicture(targetPath)(Waiting for being fixed)

Test Scripts

TestCase for CommonIntentsFacade

Test Result

Barcode

  • √ scanBarcode()(It depends on QPython 3S v2.2.1+)

View APIs

  • √ viewContacts()(No return, just display contacts list dashboard)
  • √ pick(uri) (It depends on 3rd APP with android.intent.action.PICK)
  • √ view(uri, type, extras)
  • √ viewHtml(path)(It depends on QPython 3S v2.2.1+)
  • viewMap(query)
  • search(query)

Test Scripts

TestCase for EventFacade

Test Result

  • eventClearBuffer()
  • eventRegisterForBroadcast(category, enqueue)
  • eventUnregisterForBroadcast(category)
  • eventGetBrodcastCategories()
  • eventPoll(number_of_events)
  • eventWaitFor(eventName, timeout)
  • eventWait(timeout)
  • eventPost(name, data, enqueue)
  • rpcPostEvent(name, data)
  • receiveEvent()
  • waitForEvent(eventName, timeout)
  • startEventDispatcher(port)
  • topEventDispatcher()

TestCase for MediaRecorderFacade

Test Result

Audio

  • √ recorderStartMicrophone(targetPath)

Video APIs

  • √ recorderStartVideo(targetPath, duration, videoSize)
  • √ recorderCaptureVideo(targetPath, duration, recordAudio)
  • startInteractiveVideoRecording(path)(It requires 3rd app which has ACTION_VIDEO_CAPTURE)
  • √ recorderStop()

Test Scripts

TestCase for SensorManagerFacade

Test Result

Start & Stop

  • √ startSensingTimed(sensorNumber, delayTime)
  • startSensingThreshold(ensorNumber, threshold, axis)
  • startSensing(sampleSize)
  • √ stopSensing()

Read data APIs

  • readSensors()
  • sensorsGetAccuracy()
  • sensorsGetLight()
  • sensorsReadAccelerometer()
  • sensorsReadMagnetometer()
  • √ sensorsReadOrientation()

Test Scripts

TestCase for SettingsFacade

Test Result

Screen

  • × setScreenTimeout(value)(It requires WRITE_SETTINGS permission, which is granted to system app only)
  • √ getScreenTimeout()

AirplanerMode

  • checkAirplaneMode()
  • toggleAirplaneMode(enabled)

Ringer Silent Mode

  • checkRingerSilentMode()
  • toggleRingerSilentMode(enabled)

Vibrate Mode

  • toggleVibrateMode(enabled)
  • getVibrateMode(ringer)

Ringer & Media Volume

  • getMaxRingerVolume()
  • getRingerVolume()
  • setRingerVolume(volume)
  • getMaxMediaVolume()
  • getMediaVolume()
  • setMediaVolume(volume)

Screen Brightness

  • getScreenBrightness()
  • setScreenBrightness(value)
  • checkScreenOn()

Test Scripts

TestCase for SpeechRecognitionFacade

Test Result

  • recognizeSpeech(prompt, language, languageModel)(It requires 3rd app which has android.speech.RecognizerIntent.ACTION_RECOGNIZE_SPEECH action)

Test Script

TestCase for ToneGeneratorFacade

Test Result

  • √ generateDtmfTones(phoneNumber, toneDuration)

Test Script

TestCase for WakeLockFacade

Test Result

  • √ wakeLockAcquireFull()
  • wakeLockAcquirePartial()
  • wakeLockAcquireBright()
  • wakeLockAcquireDim()
  • √ wakeLockRelease()

Test Script

TestCase for WifiFacade

Test Result

  • √ wifiStartScan()
  • √ wifiGetScanResults()
  • √ wifiLockAcquireFull()
  • wifiLockAcquireScanOnly()
  • wifiLockRelease()
  • √ checkWifiState()
  • toggleWifiState(enabled)
  • wifiDisconnect()
  • √ wifiGetConnectionInfo()
  • wifiReassociate()
  • wifiReconnect()

Test Script

TestCase for ActivityResultFacade

Test Result

  • setResultBoolean(resultCode, resultValue)
  • setResultByte(resultCode, resultValue)
  • setResultShort(resultCode, resultValue)
  • setResultChar(resultCode, resultValue)
  • setResultInteger(resultCode, resultValue)
  • setResultLong(resultCode, resultValue)
  • setResultFloat(resultCode, resultValue)
  • setResultDouble(resultCode, resultValue)
  • setResultString(resultCode, resultValue)
  • setResultBooleanArray(resultCode, resultValue)
  • setResultByteArray(resultCode, resultValue)
  • setResultShortArray(resultCode, resultValue)
  • setResultCharArray(resultCode, resultValue)
  • setResultIntegerArray(resultCode, resultValue)
  • setResultLongArray(resultCode, resultValue)
  • setResultFloatArray(resultCode, resultValue)
  • setResultDoubleArray(resultCode, resultValue)
  • setResultStringArray(resultCode, resultValue)
  • setResultSerializable(resultCode, resultValue)

TestCase for MediaPlayerFacade

Test Result

Control

  • √ mediaPlay(url, tag, play)
  • mediaPlayPause(tag)
  • mediaPlayStart(tag)
  • √ mediaPlayClose(tag)
  • mediaIsPlaying(tag)
  • mediaPlaySetLooping(enabled, tag)
  • mediaPlaySeek(msec, tag)

Get Information

  • √ mediaPlayInfo(tag)
  • √ mediaPlayList()

Test Script

TestCase for PreferencesFacade

Test Result

  • prefGetValue(key, filename)
  • prefPutValue(key, value, filename)
  • √ prefGetAll(filename)

Test Script

PackageVersion APIs

* requiredVersion(requiredVersion)

* getPackageVersionCode(packageName)

* getPackageVersion(packageName)

Test Script

PackageVersion and PackageVersionCode test

来简单的互动一下