/// <summary> /// Gets the device for the user. /// </summary> /// <param name="httpContextBase">The HTTP context base.</param> /// <returns>DeviceTypes.</returns> /// <exception cref="System.ApplicationException">[DeviceInfo detection] No license key found. Add an appsetting called \wurfl: apikey\ with your cloud service key.</exception> public IDeviceInfo GetDevice(HttpContextBase httpContextBase) { IDeviceInfo deviceInfo = new DeviceInfo(); if (httpContextBase == null) { return(deviceInfo); } if (string.IsNullOrWhiteSpace(ApiKey)) { throw new ApplicationException( "[DeviceInfo detection] No license key found. Add an appsetting called \"wurfl: apikey\" with your cloud service key."); } bool isFullVersion; bool.TryParse(FullVersion, out isFullVersion); DefaultCloudClientConfig config = new DefaultCloudClientConfig { ApiKey = ApiKey }; CloudClientManager manager = new CloudClientManager(config); ScientiaMobile.WurflCloud.Device.DeviceInfo device = isFullVersion ? manager.GetDeviceInfo(httpContextBase) : manager.GetDeviceInfo(httpContextBase, new[] { "complete_device_name, form_factor, is_mobile" }); return(new WurflAdapter(device, isFullVersion)); }
public void testInvalidApiKey() { var ua = "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.466 Mobile Safari/534.8+"; var config = new DefaultCloudClientConfig { ApiKey = "XXXXXX:YYYYYYYYYYYYYYYYYYYInvalidApiKey" }; var cache = new NoWurflCloudCache(); var manager = new CloudClientManager(config, cache); var capabilities = new string[0]; WurflCloud.Device.DeviceInfo di = manager.GetDeviceInfo(ua, capabilities); var apiKeyError = false; foreach (KeyValuePair <string, string> pair in di.Errors) { if (pair.Value.Equals("Invalid API key")) { apiKeyError = true; } } Assert.IsTrue(apiKeyError); }
public void testReadTimeout() { var ua = "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.466 Mobile Safari/534.8+"; var config = new DefaultCloudClientConfig { ApiKey = "XXXXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", ReadTimeout = 1 }; var cache = new NoWurflCloudCache(); var manager = new CloudClientManager(config, cache); var capabilities = new string[0]; WurflCloud.Device.DeviceInfo di = manager.GetDeviceInfo(ua, capabilities); var timeoutError = false; foreach (var pair in di.Errors) { if (pair.Value.Equals("Timeout")) { timeoutError = true; } } Assert.IsTrue(timeoutError); }
public void testAcceptEncoding() { var ua = "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko"; var config = new DefaultCloudClientConfig { ApiKey = "XXXXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", Compression = true }; var cache = new NoWurflCloudCache(); var manager = new CloudClientManager(config, cache); var capabilities = new string[0]; WurflCloud.Device.DeviceInfo di = manager.GetDeviceInfo(ua, capabilities); String cap; di.Capabilities.TryGetValue("form_factor", out cap); Assert.AreEqual(0, di.Errors.Count); Assert.AreNotEqual <String>("Robot", cap); }
public DeviceInfoViewModel GetDataByAgent(HttpContextBase context, String ua) { var config = new DefaultCloudClientConfig { ApiKey = "xxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }; var manager = new CloudClientManager(config).SetCache(new MemoryWurflCloudCache()); // Grab data var info = manager.GetDeviceInfo(ua, new[] { "is_wireless_device", "is_smartphone", "physical_screen_width" }); var model = new DeviceInfoViewModel { DeviceId = info.Id, UserAgent = ua, ServerVersion = info.ServerVersion, DateOfRequest = info.WurflLastUpdate.ToLongTimeString(), CachingModule = manager.GetCachingModuleName(), Library = manager.GetClientVersion(), Capabilities = info.Capabilities, Errors = info.Errors, Source = info.ResponseOrigin }; return(model); }
public DeviceInfoViewModel GetDataByRequest(HttpContextBase context) { var config = new DefaultCloudClientConfig { ApiKey = "xxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }; var manager = new CloudClientManager(config).SetCache(new CookieWurflCloudCache()); // Grab data var info = manager.GetDeviceInfo(context, new[] { "is_wireless_device", "release_date", "brand_name", "device_os" }); var model = new DeviceInfoViewModel { DeviceId = info.Id, ServerVersion = info.ServerVersion, DateOfRequest = info.WurflLastUpdate.ToString(), CachingModule = manager.GetCachingModuleName(), Library = manager.GetClientVersion(), Capabilities = info.Capabilities, Errors = info.Errors, Source = info.ResponseOrigin }; return(model); }
public void testClient() { var ua = "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.466 Mobile Safari/534.8+"; var config = new DefaultCloudClientConfig { ApiKey = "XXXXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" }; var cache = new NoWurflCloudCache(); var manager = new CloudClientManager(config, cache); var capabilities = new string[0]; WurflCloud.Device.DeviceInfo di = manager.GetDeviceInfo(ua, capabilities); Assert.AreEqual(0, di.Errors.Count); }
public void testIinvalidCapability() { var ua = "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.466 Mobile Safari/534.8+"; var config = new DefaultCloudClientConfig { ApiKey = "XXXXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" }; var cache = new NoWurflCloudCache(); var manager = new CloudClientManager(config, cache); var capabilities = new string[] { "is_vireless_device" }; WurflCloud.Device.DeviceInfo di = manager.GetDeviceInfo(ua, capabilities); var capError = false; string capValue; capError = di.Errors.TryGetValue("is_vireless_device", out capValue); Assert.IsTrue(capError); }