Example #1
0
        private async void PutImpl(UnityWebRequest completeRequest, Action onComplete)
        {
            var url = completeRequest?.url;

            if (null == completeRequest || string.IsNullOrEmpty(url))
            {
                onComplete();
                return;
            }

            var key   = Crypto.Sha256(url);
            var value = completeRequest.downloadHandler?.data;

            await Task.Run(() => {
                if (null == value || 0 == value.Length)
                {
                    return;
                }

                var editor = cacheImpl.Edit(key);
                editor?.Put(value);
                editor?.Commit();
            });

            onComplete();
        }
Example #2
0
        public void ValidateKey()
        {
            string key;

            try {
                key = "has_space ";
                cache.Edit(key);
                Assert.Fail("Exepcting an IllegalArgumentException as the key was invalid.");
            } catch (ArgumentException iae) {
                Assert.That(iae.Message, Contains.Substring("keys must match regex"));
            }

            try {
                key = "has_CR\r";
                cache.Edit(key);
                Assert.Fail("Exepcting an IllegalArgumentException as the key was invalid.");
            } catch (ArgumentException iae) {
                Assert.That(iae.Message, Contains.Substring("keys must match regex"));
            }

            try {
                key = "has_LF\n";
                cache.Edit(key);
                Assert.Fail("Exepcting an IllegalArgumentException as the key was invalid.");
            } catch (ArgumentException iae) {
                Assert.That(iae.Message, Contains.Substring("keys must match regex"));
            }

            try {
                key = "has_invalid/";
                cache.Edit(key);
                Assert.Fail("Exepcting an IllegalArgumentException as the key was invalid.");
            } catch (ArgumentException iae) {
                Assert.That(iae.Message, Contains.Substring("keys must match regex"));
            }

            try {
                key = "has_invalid\u2603";
                cache.Edit(key);
                Assert.Fail("Exepcting an IllegalArgumentException as the key was invalid.");
            } catch (ArgumentException iae) {
                Assert.That(iae.Message, Contains.Substring("keys must match regex"));
            }

            try {
                key = "this_is_way_too_long_this_is_way_too_long_this_is_way_too_long_"
                      + "this_is_way_too_long_this_is_way_too_long_this_is_way_too_long";
                cache.Edit(key);
                Assert.Fail("Exepcting an IllegalArgumentException as the key was too long.");
            } catch (ArgumentException iae) {
                Assert.That(iae.Message, Contains.Substring("keys must match regex"));
            }

            key = "0123456789012345678901234567890123456789012345678901234567890123456789"
                  + "01234567890123456789012345678901234567890123456789";
            cache.Edit(key).Abort();

            key = "abcdefghijklmnopqrstuvwxyz_0123456789";
            cache.Edit(key).Abort();

            key = "-20384573948576";
            cache.Edit(key).Abort();
        }