1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-04 02:09:32 +02:00

Save devices to database.

This commit is contained in:
Simo Kinnunen 2014-01-28 15:47:29 +09:00
parent 881996557a
commit 48b4c2fd0e
7 changed files with 165 additions and 40 deletions

View file

@ -1,33 +1,68 @@
module.exports = {
makeIdentity: function(serial, properties) {
var model = properties['ro.product.model']
, brand = properties['ro.product.brand']
, manufacturer = properties['ro.product.manufacturer']
, version = properties['ro.build.version.release']
, sdk = +properties['ro.build.version.sdk']
, abi = properties['ro.product.cpu.abi']
var util = require('util')
// Remove brand prefix for consistency
if (model.substr(0, brand.length) === brand) {
model = model.substr(brand.length)
}
var wire = require('../wire')
// Remove manufacturer prefix for consistency
if (model.substr(0, manufacturer.length) === manufacturer) {
model = model.substr(manufacturer.length)
}
var devutil = module.exports = Object.create(null)
// Clean up remaining model name
model = model.replace(/[_ ]/g, '')
return {
platform: 'android'
, serial: serial
, manufacturer: manufacturer
, model: model
, version: version
, sdk: sdk
, abi: abi
}
devutil.platform = function(platform) {
switch (platform) {
case 'android':
return wire.DevicePlatform.ANDROID
default:
throw new Error(util.format('Unmapped platform "%s"', platform))
}
}
devutil.manufacturer = function(manufacturer) {
switch (manufacturer.toUpperCase()) {
case 'SONY':
case 'SONY ERICSSON':
return wire.DeviceManufacturer.SONY
case 'FUJITSU':
return wire.DeviceManufacturer.FUJITSU
case 'HTC':
return wire.DeviceManufacturer.HTC
case 'SHARP':
return wire.DeviceManufacturer.SHARP
case 'LGE':
return wire.DeviceManufacturer.LG
case 'SAMSUNG':
return wire.DeviceManufacturer.SAMSUNG
case 'ASUS':
return wire.DeviceManufacturer.ASUS
default:
throw new Error(util.format('Unmapped manufacturer "%s"', manufacturer))
}
}
devutil.makeIdentity = function(serial, properties) {
var model = properties['ro.product.model']
, brand = properties['ro.product.brand']
, manufacturer = properties['ro.product.manufacturer']
, version = properties['ro.build.version.release']
, sdk = properties['ro.build.version.sdk']
, abi = properties['ro.product.cpu.abi']
// Remove brand prefix for consistency
if (model.substr(0, brand.length) === brand) {
model = model.substr(brand.length)
}
// Remove manufacturer prefix for consistency
if (model.substr(0, manufacturer.length) === manufacturer) {
model = model.substr(manufacturer.length)
}
// Clean up remaining model name
// model = model.replace(/[_ ]/g, '')
return {
serial: serial
, platform: devutil.platform('android')
, manufacturer: devutil.manufacturer(manufacturer)
, model: model
, version: version
, abi: abi
, sdk: sdk
}
}