public void CollectionCanSortItemsByCompletionItemText()
        {
            itemCollection.Add(new XmlCompletionItem("a"));
            itemCollection.Sort();

            Assert.AreEqual("a", itemCollection[0].Text);
        }
		public override void FixtureInit()
		{
			XmlElementPath path = new XmlElementPath();
			path.AddElement(new QualifiedName("link", schemaNamespace));
			path.NamespacesInScope.Add(new XmlNamespace("xlink", "http://www.w3.org/1999/xlink"));
			
			linkElementAttributes = SchemaCompletion.GetAttributeCompletion(path);
			linkElementAttributes.Sort();
		}
예제 #3
0
        public override void FixtureInit()
        {
            XmlElementPath path = new XmlElementPath();

            path.AddElement(new QualifiedName("link", schemaNamespace));
            path.NamespacesInScope.Add(new XmlNamespace("xlink", "http://www.w3.org/1999/xlink"));

            linkElementAttributes = SchemaCompletion.GetAttributeCompletion(path);
            linkElementAttributes.Sort();
        }
예제 #4
0
        public void NamespaceCompletionDoesNotContainDuplicateNamespaces()
        {
            XmlCompletionItemCollection items = schemas.GetNamespaceCompletion();

            items.Sort();

            List <XmlCompletionItem> expectedItems = new List <XmlCompletionItem>();

            expectedItems.Add(new XmlCompletionItem("bar", XmlCompletionItemType.NamespaceUri));
            expectedItems.Add(new XmlCompletionItem("foo", XmlCompletionItemType.NamespaceUri));

            Assert.AreEqual(expectedItems.ToArray(), items.ToArray());
        }
        public void DefaultSchemaRootElementsReturnedWhenNoNamespaceExplicitlyDefinedInXmlAndXmlIsEmpty()
        {
            XmlSchemaCompletion defaultSchema = schemas["foo"];
            string xml = "<";

            XmlCompletionItemCollection items = schemas.GetElementCompletion(xml, defaultSchema);

            items.Sort();

            XmlCompletionItemCollection expectedItems = new XmlCompletionItemCollection();

            expectedItems.Add(new XmlCompletionItem("foo-note", XmlCompletionItemType.XmlElement));

            Assert.AreEqual(expectedItems, items);
        }
예제 #6
0
        public void GetChildElementCompletionForDuplicateFooRootElement()
        {
            XmlElementPath path = new XmlElementPath();

            path.AddElement(new QualifiedName("duplicate-foo-note", "foo"));
            XmlCompletionItemCollection items = schemas.GetChildElementCompletion(path, null);

            items.Sort();

            List <XmlCompletionItem> expectedItems = new List <XmlCompletionItem>();

            expectedItems.Add(new XmlCompletionItem("duplicate-foo-text", XmlCompletionItemType.XmlElement));

            Assert.AreEqual(expectedItems.ToArray(), items.ToArray());
        }
        public void DefaultSchemaRootElementsReturnedOnceWhenNamespaceDefinedButNoElementsExistForthatNamespace()
        {
            XmlSchemaCompletion defaultSchema = schemas["foo"];
            string xml = "<b:bar-note xmlns='foo' xmlns:b='bar'><";

            XmlCompletionItemCollection items = schemas.GetElementCompletion(xml, defaultSchema);

            items.Sort();

            XmlCompletionItemCollection expectedItems = new XmlCompletionItemCollection();

            expectedItems.Add(new XmlCompletionItem("b:bar-text", XmlCompletionItemType.XmlElement));
            expectedItems.Add(new XmlCompletionItem("foo-note", XmlCompletionItemType.XmlElement));

            Assert.AreEqual(expectedItems, items);
        }
예제 #8
0
        public void GetRootElementCompletionReturnsRootElementsFromBothFooSchemas()
        {
            XmlNamespaceCollection namespaces = new XmlNamespaceCollection();

            namespaces.Add(new XmlNamespace(String.Empty, "foo"));
            XmlCompletionItemCollection items = schemas.GetRootElementCompletion(namespaces);

            items.Sort();

            List <XmlCompletionItem> expectedItems = new List <XmlCompletionItem>();

            expectedItems.Add(new XmlCompletionItem("duplicate-foo-note", XmlCompletionItemType.XmlElement));
            expectedItems.Add(new XmlCompletionItem("foo-note", XmlCompletionItemType.XmlElement));

            Assert.AreEqual(expectedItems.ToArray(), items.ToArray());
        }
        public void Init()
        {
            XmlCompletionItem lastItem = new XmlCompletionItem("cc", XmlCompletionItemType.XmlElement);
            XmlCompletionItem secondItem = new XmlCompletionItem("bb", XmlCompletionItemType.XmlElement);
            XmlCompletionItem firstItem = new XmlCompletionItem("aa", XmlCompletionItemType.XmlElement);

            XmlCompletionItemCollection collection = new XmlCompletionItemCollection();
            collection.Add(lastItem);
            collection.Add(secondItem);
            collection.Add(firstItem);

            expectedCompletionItems = new XmlCompletionItem[] { firstItem, secondItem, lastItem };

            completionItems = new XmlCompletionItemCollection(collection);
            completionItems.Sort();
        }
예제 #10
0
        public void Init()
        {
            XmlCompletionItem lastItem   = new XmlCompletionItem("cc", XmlCompletionItemType.XmlElement);
            XmlCompletionItem secondItem = new XmlCompletionItem("bb", XmlCompletionItemType.XmlElement);
            XmlCompletionItem firstItem  = new XmlCompletionItem("aa", XmlCompletionItemType.XmlElement);

            XmlCompletionItemCollection collection = new XmlCompletionItemCollection();

            collection.Add(lastItem);
            collection.Add(secondItem);
            collection.Add(firstItem);

            expectedCompletionItems = new XmlCompletionItem[] { firstItem, secondItem, lastItem };

            completionItems = new XmlCompletionItemCollection(collection);
            completionItems.Sort();
        }
        public void FooSchemaRootElementAndBarRootElementInPath()
        {
            XmlElementPath path = new XmlElementPath();

            path.AddElement(new QualifiedName("foo-note", "foo"));
            path.AddElement(new QualifiedName("bar-note", "bar", "b"));
            XmlCompletionItemCollection items = schemas.GetElementCompletionForAllNamespaces(path, null);

            items.Sort();

            XmlCompletionItemCollection expectedItems = new XmlCompletionItemCollection();

            expectedItems.Add(new XmlCompletionItem("b:bar-text", XmlCompletionItemType.XmlElement));
            expectedItems.Add(new XmlCompletionItem("foo-text", XmlCompletionItemType.XmlElement));

            Assert.AreEqual(expectedItems, items);
        }
        public void UnusedNamespaceInScopeCannotBeFoundInSchemaCollection()
        {
            XmlElementPath path = new XmlElementPath();

            path.NamespacesInScope.Add(new XmlNamespace("b", "namespace-which-does-not-exist-in-schema-collection"));
            path.AddElement(new QualifiedName("foo-note", "foo"));

            XmlCompletionItemCollection items = schemas.GetElementCompletionForAllNamespaces(path, null);

            items.Sort();

            XmlCompletionItemCollection expectedItems = new XmlCompletionItemCollection();

            expectedItems.Add(new XmlCompletionItem("foo-text", XmlCompletionItemType.XmlElement));

            Assert.AreEqual(expectedItems, items);
        }
        public void FooSchemaElementAndBarElementInXml()
        {
            string xml =
                "<foo-note xmlns='foo' xmlns:b='bar'>\r\n" +
                "    <b:bar-note>\r\n" +
                "        <";

            XmlCompletionItemCollection expectedItems = new XmlCompletionItemCollection();

            expectedItems.Add(new XmlCompletionItem("b:bar-text", XmlCompletionItemType.XmlElement));
            expectedItems.Add(new XmlCompletionItem("foo-text", XmlCompletionItemType.XmlElement));

            XmlCompletionItemCollection items = schemas.GetElementCompletion(xml, null);

            items.Sort();

            Assert.AreEqual(expectedItems, items);
        }
예제 #14
0
        public void GetAttributeValueCompletionReturnsValuesForDuplicateFooSchema()
        {
            string xml =
                "<duplicate-foo-note xmlns='foo'>\r\n" +
                "    <duplicate-foo-text duplicate-foo-text-attribute='f'";

            string xmlUpToCursor = xml.Substring(0, xml.Length - 1);

            XmlCompletionItemCollection items = schemas.GetAttributeValueCompletion('f', xmlUpToCursor, null);

            items.Sort();

            XmlCompletionItemCollection expectedItems = new XmlCompletionItemCollection();

            expectedItems.Add(new XmlCompletionItem("first", XmlCompletionItemType.XmlAttributeValue));
            expectedItems.Add(new XmlCompletionItem("fourth", XmlCompletionItemType.XmlAttributeValue));
            expectedItems.Add(new XmlCompletionItem("second", XmlCompletionItemType.XmlAttributeValue));
            expectedItems.Add(new XmlCompletionItem("third", XmlCompletionItemType.XmlAttributeValue));

            Assert.AreEqual(expectedItems, items);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="editor"></param>
        /// <returns></returns>
        public XmlCompletionItemCollection RetrieveCompletionItemCollection()
        {
            XmlSchemaCompletionCollection schemas = this.AutoFindSchemaCollection();

            //retrieve information about the path that we are working
            int offset = this.FixOffset(this.Text, this.Position.Offset);

            if (offset == -1)
            {
                return(null);
            }

            string              textUpToCursor = this.Text.GetText(0, offset);
            XmlElementPath      path           = XmlParser.GetActiveElementStartPath(textUpToCursor, textUpToCursor.Length);
            XmlSchemaCompletion defaultSchema  = GetDefaultSchema(path, schemas);

            XmlCompletionItemCollection completionItems = GetCompletionItems(defaultSchema, schemas);

            completionItems.Sort();

            return(completionItems);
        }
        public void CorrectAttributeValuesReturnedForElementWhenTwoNamespacesInXml()
        {
            string xml =
                "<b:bar-note xmlns='foo' xmlns:b='bar'>\r\n" +
                "    <foo-note>\r\n" +
                "        <b:bar-text/>\r\n" +
                "        <foo-text foo-text-attribute='f'";

            string xmlUpToCursor = xml.Substring(0, xml.Length - 1);

            XmlCompletionItemCollection items = schemas.GetAttributeValueCompletion('f', xmlUpToCursor, null);

            items.Sort();

            XmlCompletionItemCollection expectedItems = new XmlCompletionItemCollection();

            expectedItems.Add(new XmlCompletionItem("first", XmlCompletionItemType.XmlAttributeValue));
            expectedItems.Add(new XmlCompletionItem("fourth", XmlCompletionItemType.XmlAttributeValue));
            expectedItems.Add(new XmlCompletionItem("second", XmlCompletionItemType.XmlAttributeValue));
            expectedItems.Add(new XmlCompletionItem("third", XmlCompletionItemType.XmlAttributeValue));

            Assert.AreEqual(expectedItems, items);
        }