示例#1
0
        /// <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));
        }
示例#2
0
        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);
        }
示例#7
0
        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);
        }