public void ShouldReturnStringKeyValuePair()
        {
            var uri = new Uri("http://google.com?key=value", UriKind.Absolute);
            var pairs = uri.GetQueryString();
            pairs.Count().ShouldBe(1);

            pairs.ElementAt(0).Key.ShouldBe("key");
            pairs.ElementAt(0).Value.ShouldBe("value");
        }
        public void ShouldReturnKeysOnlyInQueryString()
        {
            var uri = new Uri("/Default.aspx?key1&key2&key3", UriKind.Relative);
            var pairs = uri.GetQueryString();
            pairs.Count().ShouldBe(3);

            pairs.ElementAt(0).Key.ShouldBe("key1");
            pairs.ElementAt(1).Key.ShouldBe("key2");
            pairs.ElementAt(2).Key.ShouldBe("key3");
        }
        public void ShouldContainClassNamesFromQueryString()
        {
            var uri = new Uri("/TestHarness.htm?xap=One&Class=NS.Class&class=  Class2.&CLASS=  &class=Class3  ", UriKind.Relative);
            var model = new QueryString(uri.GetQueryString());
            model.ClassNames.Count().ShouldBe(3);

            model.ClassNames.ElementAt(0).ShouldBe("NS.Class");
            model.ClassNames.ElementAt(1).ShouldBe("Class2.");
            model.ClassNames.ElementAt(2).ShouldBe("Class3");
        }
Esempio n. 4
0
        /// <summary>
        /// Adds the specified query string setting to this Url.
        /// </summary>
        public static Uri AddQueryString(this Uri url, string key, string value)
        {
            var qs = url.GetQueryString();

            qs.RemoveWhere(x => x.Key.Equals(key, StringComparison.OrdinalIgnoreCase));

            qs.Add(key, value);

            return(url.ReplaceQueryString(qs));
        }
        public void ShouldContainXapFilesFromQueryString()
        {
            var uri = new Uri("/TestHarness.htm?xap=One&XAP=Two...xap&xap=Three.&xap=Four.XAP&xap=  ", UriKind.Relative);
            var model = new QueryString(uri.GetQueryString());
            model.XapFiles.Count().ShouldBe(4);

            model.XapFiles.ElementAt(0).ShouldBe("One");
            model.XapFiles.ElementAt(1).ShouldBe("Two");
            model.XapFiles.ElementAt(2).ShouldBe("Three");
            model.XapFiles.ElementAt(3).ShouldBe("Four");
        }
Esempio n. 6
0
        /// <summary>
        /// Removes the specified query string parameter.
        /// </summary>
        public static Uri RemoveEmptyQueryParameters(this Uri url)
        {
            var toRemove = url.GetQueryString().Where(x => x.Value.IsEmpty()).ToList();

            foreach (var item in toRemove)
            {
                url = url.RemoveQueryString(item.Key);
            }

            return(url);
        }
Esempio n. 7
0
        /// <summary>
        /// Removes the specified query string parameter.
        /// </summary>
        public static Uri RemoveQueryString(this Uri url, string key)
        {
            var qs = url.GetQueryString();

            key = key.ToLower();
            if (qs.ContainsKey(key))
            {
                qs.Remove(key);
            }

            return(url.ReplaceQueryString(qs));
        }
        public void ShouldReturnQueryStringThatContainsQuestionMark()
        {
            var uri = new Uri("/Default.aspx?key?=value&key=valu?e", UriKind.Relative);
            var pairs = uri.GetQueryString();
            pairs.Count().ShouldBe(2);

            pairs.ElementAt(0).Key.ShouldBe("key?");
            pairs.ElementAt(0).Value.ShouldBe("value");

            pairs.ElementAt(1).Key.ShouldBe("key");
            pairs.ElementAt(1).Value.ShouldBe("valu?e");
        }
        public void ShouldHaveQueryStringOnAbsoluteUri()
        {
            var uri = new Uri("http://google.com?key=value&key=value", UriKind.Absolute);
            var pairs = uri.GetQueryString();
            pairs.Count().ShouldBe(2);

            pairs.ElementAt(0).Key.ShouldBe("key");
            pairs.ElementAt(0).Value.ShouldBe("value");

            pairs.ElementAt(1).Key.ShouldBe("key");
            pairs.ElementAt(1).Value.ShouldBe("value");
        }
        public void ShouldHaveQueryStringOnRelativeUri()
        {
            var uri = new Uri("/Default.aspx?key=value&key=value", UriKind.Relative);
            var pairs = uri.GetQueryString();
            pairs.Count().ShouldBe(2);

            pairs.ElementAt(0).Key.ShouldBe("key");
            pairs.ElementAt(0).Value.ShouldBe("value");

            pairs.ElementAt(1).Key.ShouldBe("key");
            pairs.ElementAt(1).Value.ShouldBe("value");
        }
        public void ShouldHaveQueryStringItems()
        {
            var uri = new Uri("/TestHarness.htm?xap=MyApp&class=MyClass&method=MyMethod", UriKind.Relative);
            var model = new QueryString(uri.GetQueryString());

            model.Items.ElementAt(0).Key.ShouldBe("xap");
            model.Items.ElementAt(0).Value.ShouldBe("MyApp");

            model.Items.ElementAt(1).Key.ShouldBe("class");
            model.Items.ElementAt(1).Value.ShouldBe("MyClass");

            model.Items.ElementAt(2).Key.ShouldBe("method");
            model.Items.ElementAt(2).Value.ShouldBe("MyMethod");
        }
 public void ShouldReturnQueryStringWithKeyStartingWithQuestionMark()
 {
     var uri = new Uri("/Default.aspx??key=value", UriKind.Relative);
     uri.GetQueryString().ElementAt(0).Key.ShouldBe("?key");
 }
        public void ShouldNotHaveTags()
        {
            var uri = new Uri("/TestHarness.htm?tag=   ", UriKind.Relative);
            var model = new QueryString(uri.GetQueryString());
            model.Tags.Count().ShouldBe(0);

            uri = new Uri("/TestHarness.htm", UriKind.Relative);
            model = new QueryString(uri.GetQueryString());
            model.Tags.Count().ShouldBe(0);
        }
        public void ShouldHaveThreeTags()
        {
            var uri = new Uri("/TestHarness.htm?tag=one&tag=   two   &tag= three&", UriKind.Relative);
            var model = new QueryString(uri.GetQueryString());

            model.Tags.Count().ShouldBe(3);
            model.Tags.ElementAt(0).ShouldBe("one");
            model.Tags.ElementAt(1).ShouldBe("two");
            model.Tags.ElementAt(2).ShouldBe("three");
        }
 public void ShouldReadUnitTestType()
 {
     var uri = new Uri("/TestHarness.htm?testType=unitTest", UriKind.Relative);
     var model = new QueryString(uri.GetQueryString());
     model.TestType.ShouldBe(TestType.UnitTest);
 }
 public void ShouldHaveDefaultTestTypeWhenUnknownValueSpecified()
 {
     var uri = new Uri("/TestHarness.htm?testType=UNKNOWN", UriKind.Relative);
     var model = new QueryString(uri.GetQueryString());
     model.TestType.ShouldBe(TestType.ViewTest);
 }
        /// <summary>
        /// Encodes the URI to OpenWave image transformation URI.
        /// </summary>
        /// <param name="uri">The target URI.</param>
        /// <returns>
        /// Transformed URI instance.
        /// </returns>
        public Uri EncodeUri(Uri uri)
        {
            if (!IsSupportedUri(uri))
            {
                return uri;
            }

            var transformQuery = ImageTransformQuery.FromQueryString(uri.GetQueryString(), DefaultImageTransform);

            var transformBuilder = ImageTransformationBuilderFactory.CreateBuilder();
            transformBuilder.Width = transformQuery.Width;
            transformBuilder.Height = transformQuery.Height;
            transformBuilder.TransformType = transformQuery.Transform;

            Url url = ImageTransformationService.GetTransformedImageUrl(Url.Parse(uri.ToString()), transformBuilder);
            return new Uri(url.ToString(), UriKind.RelativeOrAbsolute);
        }
        public void ShouldAddXapModulesToRootModel()
        {
            TestHarnessModel.ResetSingleton();
            TestHarnessModel.Instance.Settings.Clear();

            var testHarness = TestHarnessModel.Instance;
            testHarness.Modules.Where(m => m.GetType() == typeof(ViewTestClassesAssemblyModule)).Count().ShouldBe(0);

            var uri = new Uri("/TestHarness.htm?xap=One&xap=Two", UriKind.Relative);
            var model = new QueryString(uri.GetQueryString());

            var modules = testHarness.Modules.Where(m => m.GetType() == typeof (ViewTestClassesAssemblyModule)).Cast<ViewTestClassesAssemblyModule>();
            modules.Count().ShouldBe(2);
            modules.ElementAt(0).XapFileName.ShouldBe("One");
            modules.ElementAt(1).XapFileName.ShouldBe("Two");

            // ---

            uri = new Uri("/TestHarness.htm?xap=One&xap=Three", UriKind.Relative);
            model = new QueryString(uri.GetQueryString());

            modules = testHarness.Modules.Where(m => m.GetType() == typeof(ViewTestClassesAssemblyModule)).Cast<ViewTestClassesAssemblyModule>();
            modules.Count().ShouldBe(3);
            modules.ElementAt(0).XapFileName.ShouldBe("One");
            modules.ElementAt(1).XapFileName.ShouldBe("Two");
            modules.ElementAt(2).XapFileName.ShouldBe("Three");
        }
        /// <summary>
        /// Determines whether URL is supported to encode (contains image resizing request).
        /// </summary>
        /// <param name="uri">The target URI.</param>
        /// <returns>
        ///   <c>true</c> if target URI is supported; otherwise, <c>false</c>
        /// </returns>
        public bool IsSupportedUri(Uri uri)
        {
            string fileExtension = (Path.GetExtension(uri.GetFileName()) ?? string.Empty).ToLower();
            if (ValidImageExtensions.Contains(fileExtension))
            {
                var queryString = uri.GetQueryString();

                // if some transformation requested.
                if (!ImageTransformQuery.FromQueryString(queryString, DefaultImageTransform).IsEmpty)
                {
                    return true;
                }
            }

            return false;
        }