public void IncrementsOffsetCorrectlyWithAnotherReader2() { const string input = @"test1 <a href=""foo"">testlink</a> test2 test3"; CharFilter filter = new HTMLStripCharFilter(CharReader.Get(new StringReader(input))); Tokenizer t = new Tokenizer(filter); string token = string.Empty; List<Token> results = new List<Token>(); t.NextToken(out token); Assert.Equal(0, filter.CorrectOffset(t.Offset)); Assert.Equal(5, t.LengthInSource); t.NextToken(out token); Assert.Equal(20, filter.CorrectOffset(t.Offset)); Assert.Equal(8, t.LengthInSource); t.NextToken(out token); Assert.Equal(33, filter.CorrectOffset(t.Offset)); Assert.Equal(5, t.LengthInSource); t.NextToken(out token); Assert.Equal(39, filter.CorrectOffset(t.Offset)); Assert.Equal(5, t.LengthInSource); }
public void doTestOffsets(String input) { var reader = new HTMLStripCharFilter(CharReader.Get(new StringReader(input))); int ch = 0; int off = 0; // offset in the reader int strOff = -1; // offset in the original string while ((ch = reader.Read()) != -1) { var correctedOff = reader.CorrectOffset(off); if (ch == 'X') { strOff = input.IndexOf('X', strOff + 1); assertEquals(strOff, correctedOff); } off++; } }