/** Test for APSTUD-4289. Make sure we don't allow duplicate user agents into the JS index */ @Test public void testDuplicateUserAgents() { // create property PropertyElement property = new PropertyElement(); property.setName("property"); // add all user agents, twice IUserAgentManager manager = CorePlugin.getDefault().getUserAgentManager(); for (IUserAgent userAgent : manager.getAllUserAgents()) { UserAgentElement uaElement = new UserAgentElement(); uaElement.setPlatform(userAgent.getName()); property.addUserAgent(uaElement); property.addUserAgent(uaElement); } // create type for property so we can write it to the index TypeElement type = new TypeElement(); type.setName("Testing"); type.addProperty(property); // write type and its properties JSIndexWriter writer = new JSIndexWriter(); writer.writeType(getIndex(), type); // read property back again JSIndexReader reader = new JSIndexReader(); List<PropertyElement> properties = reader.getProperties(getIndex(), property.getOwningType()); // make sure we have only one of each user agent assertNotNull(properties); assertEquals(1, properties.size()); assertEquals(manager.getAllUserAgents().length, properties.get(0).getUserAgents().size()); }
/** Test for APSTUD-4535 */ @Test public void testTypeCaching() { TestBuildContext myContext = new TestBuildContext("indexing/dottedTypes.js"); try { IParseRootNode ast = myContext.getAST(); JSFileIndexingParticipant indexParticipant = new JSFileIndexingParticipant(); Index index = getIndex(); indexParticipant.processParseResults(myContext, index, ast, new NullProgressMonitor()); JSIndexReader queryHelper = new JSIndexReader(); List<TypeElement> types = queryHelper.getTypes(index, true); assertNotNull(types); assertEquals("Expected 3 types", 3, types.size()); // remove index and do it all over again getIndexManager().removeIndex(URI.create(IJSIndexConstants.METADATA_INDEX_LOCATION)); // make sure we get the same results index = getIndex(); indexParticipant.processParseResults(myContext, index, ast, new NullProgressMonitor()); types = queryHelper.getTypes(index, true); assertNotNull(types); assertEquals("Expected 3 types", 3, types.size()); } catch (CoreException e) { fail(e.getMessage()); } }
/** * getType * * @param typeName * @return */ private List<TypeElement> getType(String typeName) { JSIndexReader reader = new JSIndexReader(); return reader.getType(this.getIndex(), typeName, true); }