日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入JUnit源码之Rule

發布時間:2025/3/21 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入JUnit源码之Rule 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
初次用文字的方式記錄讀源碼的過程,不知道怎么寫,感覺有點貼代碼的嫌疑。不過中間還是加入了一些自己的理解和心得,希望以后能夠慢慢的改進,感興趣的童鞋湊合著看吧,感覺JUnit這個框架還是值得看的,里面有許多不錯的設計思想在,更何況它是Kent Beck和Erich Gamma這樣的大師寫的。。。。。

深入JUnit源碼之Rule

JUnit中的Rule是對@BeforeClass@AfterClass@Before@After等注解的另一種實現,其中@ClassRule實現的功能和@BeforeClass@AfterClass類似;@Rule實現的功能和@Before@after類似。JUnit引入@ClassRule@Rule注解的關鍵是想讓以前在@BeforeClass@AfterClass@Before@After中的邏輯能更加方便的實現重用,因為@BeforeClass@AfterClass@Before@After是將邏輯封裝在一個測試類的方法中的,如果實現重用,需要自己將這些邏輯提取到一個單獨的類中,再在這些方法中調用,而@ClassRule@Rule則是將邏輯封裝在一個類中,當需要使用時,直接賦值即可,對不需要重用的邏輯則可用匿名類實現,也因此,JUnit在接下來的版本中更傾向于多用@ClassRule@Rule,雖然就我自己來說,感覺還是用@BeforeClass@AfterClass@Before@After這些注解更加熟悉一些,也可能是我測試代碼寫的還不夠多的原因吧L。同時由于Statement鏈構造的特殊性@ClassRule@Rule也保證了類似父類@BeforeClass@Before注解的方法要比子類的注解方法執行早,而父類的@AfterClass@After注解的方法執行要比子類要早的特點。

@ClassRule@Rule注解字段的驗證

@ClassRule@Rule只能注解在字段中,并且該字段的類型必須實現了TestRule接口,對@ClassRule注解的字段還必須是publicstatic,并且@ClassRule注解的字段在運行時不可以拋異常,不然JUnit的行為是未定義的,這個是注釋文檔中這樣描述的,實際情況則一般是直接觸發testFailure事件,至于其他結果,則要看不同的TestRule實現不同,這個特征將在下面詳細講解;而對@Rule注解的字段必須是public,非static,關于@ClassRule注解字段和@Rule注解字段的驗證是在RuleFieldValidator中做的(具體可以參考Runner小節)

?1?public?enum?RuleFieldValidator?{
?2?????CLASS_RULE_VALIDATOR(ClassRule.class,?true),?RULE_VALIDATOR(Rule.class,?false);
?3?????
?4?????public?void?validate(TestClass?target,?List<Throwable>?errors)?{
?5????????List<FrameworkField>?fields=?target.getAnnotatedFields(fAnnotation);
?6????????for?(FrameworkField?each?:?fields)
?7????????????validateField(each,?errors);
?8?????}
?9?????private?void?validateField(FrameworkField?field,?List<Throwable>?errors)?{
10????????optionallyValidateStatic(field,?errors);
11????????validatePublic(field,?errors);
12????????validateTestRuleOrMethodRule(field,?errors);
13?????}
14?????private?void?optionallyValidateStatic(FrameworkField?field,
15????????????List<Throwable>?errors)?{
16????????if?(fOnlyStaticFields?&&?!field.isStatic())
17????????????addError(errors,?field,?"must?be?static.");
18?????}
19?????private?void?validatePublic(FrameworkField?field,?List<Throwable>?errors)?{
20????????if?(!field.isPublic())
21????????????addError(errors,?field,?"must?be?public.");
22?????}
23?????private?void?validateTestRuleOrMethodRule(FrameworkField?field,
24????????????List<Throwable>?errors)?{
25????????if?(!isMethodRule(field)?&&?!isTestRule(field))
26????????????addError(errors,?field,?"must?implement?MethodRule?or?TestRule.");
27?????}
28?????private?boolean?isTestRule(FrameworkField?target)?{
29????????return?TestRule.class.isAssignableFrom(target.getType());
30?????}
31?????private?boolean?isMethodRule(FrameworkField?target)?{
32????????return?org.junit.rules.MethodRule.class.isAssignableFrom(target
33???????????????.getType());
34?????}
35?????private?void?addError(List<Throwable>?errors,?FrameworkField?field,
36????????????String?suffix)?{
37????????String?message=?"The?@"?+?fAnnotation.getSimpleName()?+?"?'"
38???????????????+?field.getName()?+?"'?"?+?suffix;
39????????errors.add(new?Exception(message));
40?????}
41?}

?

JUnit默認實現的TestRule

本節將重點介紹當前JUnit默認實現的幾個TestRule,先給出類圖,然后介紹源碼實現以及用途,最后還將簡單的介紹RunRules這個Statement的運行信息,雖然這個類非常簡單,在Statement那節中也已經簡單的做過介紹了。

在學一個新的框架的時候,我一直比較喜歡先看一下框架的類圖,這樣自己總體上就有個概念了。這里也先給一張JUnitTestRule的類圖吧:

?

TestRule的類結構圖還是比較簡單的,只是將它置于JUnitStatement框架中,有些問題分析起來就比較復雜了。為了保持問題的簡單,我們先來看一下每個單獨的類各自實現了什么功能和怎么實現吧。

TestWatcherTestName

先來看兩個簡單的吧,TestWatcher為子類提供了四個事件方法以監控測試方法在運行過程中的狀態,一般它可以作為信息記錄使用。如果TestWatcher作為@ClassRule注解字段,則該測試類在運行之前(調用所有的@BeforeClass注解方法之前)會調用starting()方法;當所有@AfterClass注解方法調用結束后,succeeded()方法會被調用;若@AfterClass注解方法中出現異常,則failed()方法會被調用;最后,finished()方法會被調用;所有這些方法的DescriptionRunner對應的Description。如果TestWatcher作為@Rule注解字段,則在每個測試方法運行前(所有的@Before注解方法運行前)會調用starting()方法;當所有@After注解方法調用結束后,succeeded()方法會被調用;若@After注解方法中跑出異常,則failed()方法會被調用;最后,finished()方法會被調用;所有Description的實例是測試方法的Description實例。

TestName是對TestWatcher的一個簡單實現,它會在starting()方法中記錄每次運行的名字。如果TestName作為@Rule注解字段,則starting()中傳入的Description是對每個測試方法的Description,因而getMethodName()方法返回的是測試方法的名字。一般TestName不作為@ClassRule注解字段,如果真有人這樣用了,則starting()Description的參數是RunnerDescription實例,一般getMethodName()返回值為null

?1?public?abstract?class?TestWatcher?implements?TestRule?{
?2?????public?Statement?apply(final?Statement?base,?final?Description?description)?{
?3????????return?new?Statement()?{
?4????????????@Override
?5????????????public?void?evaluate()?throws?Throwable?{
?6???????????????starting(description);
?7???????????????try?{
?8???????????????????base.evaluate();
?9???????????????????succeeded(description);
10???????????????}?catch?(AssumptionViolatedException?e)?{
11???????????????????throw?e;
12???????????????}?catch?(Throwable?t)?{
13???????????????????failed(t,?description);
14???????????????????throw?t;
15???????????????}?finally?{
16???????????????????finished(description);
17???????????????}
18????????????}
19????????};
20?????}
21?????protected?void?succeeded(Description?description)?{
22?????}
23?????protected?void?failed(Throwable?e,?Description?description)?{
24?????}
25?????protected?void?starting(Description?description)?{
26?????}
27?????protected?void?finished(Description?description)?{
28?????}
29?}
30?public?class?TestName?extends?TestWatcher?{
31?????private?String?fName;
32?????@Override
33?????protected?void?starting(Description?d)?{
34????????fName=?d.getMethodName();
35?????}
36?????public?String?getMethodName()?{
37????????return?fName;
38?????}
39?}

?

ExternalResourceTemporaryFolder

ExternalResource為子類提供了兩個接口,分別是進入測試之前和退出測試之后,一般它是作為對一些資源在測試前后的控制,如Socket的開啟與關閉、Connection的開始與斷開、臨時文件的創建與刪除等。如果ExternalResource用在@ClassRule注解字段中,before()方法會在所有@BeforeClass注解方法之前調用;after()方法會在所有@AfterClass注解方法之后調用,不管在執行@AfterClass注解方法時是否拋出異常。如果ExternalResource用在@Rule注解字段中,before()方法會在所有@Before注解方法之前調用;after()方法會在所有@After注解方法之后調用。

TemporaryFolder是對ExternalResource的一個實現,它在before()方法中在臨時文件夾中創建一個隨機的文件夾,以junit開頭;并在after()方法將創建的臨時文件夾清空,并刪除該臨時文件夾。另外TemporaryFolder還提供了幾個方法以在新創建的臨時文件夾中創建新的文件、文件夾。

?1?public?abstract?class?ExternalResource?implements?TestRule?{
?2?????public?Statement?apply(Statement?base,?Description?description)?{
?3????????return?statement(base);
?4?????}
?5?????private?Statement?statement(final?Statement?base)?{
?6????????return?new?Statement()?{
?7????????????@Override
?8????????????public?void?evaluate()?throws?Throwable?{
?9???????????????before();
10???????????????try?{
11???????????????????base.evaluate();
12???????????????}?finally?{
13???????????????????after();
14???????????????}
15????????????}
16????????};
17?????}
18?????protected?void?before()?throws?Throwable?{
19?????}
20?????protected?void?after()?{
21?????}
22?}
23?public?class?TemporaryFolder?extends?ExternalResource?{
24?????private?File?folder;
25?????@Override
26?????protected?void?before()?throws?Throwable?{
27????????create();
28?????}
29?????@Override
30?????protected?void?after()?{
31????????delete();
32?????}
33?????public?void?create()?throws?IOException?{
34????????folder=?newFolder();
35?????}
36?????public?File?newFile(String?fileName)?throws?IOException?{
37????????File?file=?new?File(getRoot(),?fileName);
38????????file.createNewFile();
39????????return?file;
40?????}
41?????public?File?newFile()?throws?IOException?{
42????????return?File.createTempFile("junit",?null,?folder);
43?????}
44?????public?File?newFolder(String?folderNames)?{
45????????File?file?=?getRoot();
46????????for?(String?folderName?:?folderNames)?{
47????????????file?=?new?File(file,?folderName);
48????????????file.mkdir();
49????????}
50????????return?file;
51?????}
52?????public?File?newFolder()?throws?IOException?{
53????????File?createdFolder=?File.createTempFile("junit",?"",?folder);
54????????createdFolder.delete();
55????????createdFolder.mkdir();
56????????return?createdFolder;
57?????}
58?????public?File?getRoot()?{
59????????if?(folder?==?null)?{
60????????????throw?new?IllegalStateException("the?temporary?folder?has?not?yet?been?created");
61????????}
62????????return?folder;
63?????}
64?????public?void?delete()?{
65????????recursiveDelete(folder);
66?????}
67?????private?void?recursiveDelete(File?file)?{
68????????File[]?files=?file.listFiles();
69????????if?(files?!=?null)
70????????????for?(File?each?:?files)
71???????????????recursiveDelete(each);
72????????file.delete();
73?????}
74?}

?

VerifierErrorCollector

Verifier是在所有測試已經結束的時候,再加入一些額外的邏輯,如果額外的邏輯通過,才表示測試成功,否則,測試依舊失敗,即使在之前的運行中都是成功的。Verify可以為一些很多測試方法加入一些公共的驗證邏輯。當Verifier應用在@Rule注解字段中,它在所偶@After注解方法運行完后,會調用verify()方法,如果verifier()方法驗證失敗拋出異常,則該測試方法的testFailure事件將會被觸發,導致該測試方法失敗;當Verifier應用在@ClassRule時,它在所有的@AfterClass注解的方法執行完后,會執行verify()方法,如果verify失敗拋出異常,將會觸發關于該測試類的testFailure,此時測試類中的所有測試方法都已經運行成功了,卻在最后收到一個關于測試類的testFailure事件,這確實是一個比較詭異的事情,因而@ClassRule中提到ErrorCollectorVerifier)不可以用在@ClassRule注解中,否則其行為為定義;更一般的@ClassRule注解的字段運行時不能拋異常,不然其行為是未定義的。

ErrorCollector是對Verifier的一個實現,它可以在運行測試方法的過程中收集錯誤信息,而這些錯誤信息知道最后調用ErrorCollectorverify()方法時再處理。其實就目前來看,我很難想象這個需求存在的意義,因為即使它將所有的錯誤信息收集在一起了,在事件發布是,它還是會為每個錯誤發布一次testFailure事件(參考EachTestNotifier的實現),除非有一種需求是即使測試方法在運行過程的某個點運行出錯,也只是先記錄這個錯誤,等到所有邏輯運行結束后才去將這個測試方法運行過程中存在的錯誤發布出去,這樣一次運行就可以知道測試代碼中存在出錯的地方。ErrorCollector中還提供了幾個收集錯誤的方法:如addError()checkThat()checkSucceeds()等。這里的checkThat()方法用到了hamcrest框架中的Matcher,這部分的內容將在Assert小節中詳細介紹。

?1?public?class?Verifier?implements?TestRule?{
?2?????public?Statement?apply(final?Statement?base,?Description?description)?{
?3????????return?new?Statement()?{
?4????????????@Override
?5????????????public?void?evaluate()?throws?Throwable?{
?6???????????????base.evaluate();
?7???????????????verify();
?8????????????}
?9????????};
10?????}
11?????protected?void?verify()?throws?Throwable?{
12?????}
13?}
14?public?class?ErrorCollector?extends?Verifier?{
15?????private?List<Throwable>?errors=?new?ArrayList<Throwable>();
16?????@Override
17?????protected?void?verify()?throws?Throwable?{
18????????MultipleFailureException.assertEmpty(errors);
19?????}
20?????public?void?addError(Throwable?error)?{
21????????errors.add(error);
22?????}
23?????public?<T>?void?checkThat(final?T?value,?final?Matcher<T>?matcher)?{
24????????checkThat("",?value,?matcher);
25?????}
26?????public?<T>?void?checkThat(final?String?reason,?final?T?value,?final?Matcher<T>?matcher)?{
27????????checkSucceeds(new?Callable<Object>()?{
28????????????public?Object?call()?throws?Exception?{
29???????????????assertThat(reason,?value,?matcher);
30???????????????return?value;
31????????????}
32????????});
33?????}
34?????public?Object?checkSucceeds(Callable<Object>?callable)?{
35????????try?{
36????????????return?callable.call();
37????????}?catch?(Throwable?e)?{
38????????????addError(e);
39????????????return?null;
40????????}
41?????}
42?}

?

TimeoutExpectedException

TimeoutExpectedException都是對@Test注解中timeoutexpected字段的部分替代實現。而且不同于@Test中的注解只適用于單個測試方法,這兩個實現適用于全局測試類。對Timeout來說,如果不是在測試類中所有的測試方法都需要有時間限制,我并不推薦適用Timeout;對ExpectedException,它使用了hamcrest中的Matcher來匹配,因而提供了更強大的控制能力,但是一般的使用,感覺@Test中的expected字段就夠了,它多次調用expected表達是and的關系,即如果我有兩個Exception,則拋出的Exception必須同時是這兩個類型的,感覺沒有什么大的意義,因而我不怎么推薦使用這個Rule,關于hamcrestMather框架將在Assert小節中詳細介紹。這兩個Rule原本就是基于測試方法設計的,因而如果應用在@ClassRule上好像沒有什么大的意義,不過Timeout感覺是可以應用在@ClassRule中的,如果要測試一個測試類整體運行時間的話,當然如果存在這種需求的話。

?1?public?class?Timeout?implements?TestRule?{
?2?????private?final?int?fMillis;
?3?????public?Timeout(int?millis)?{
?4????????fMillis=?millis;
?5?????}
?6?????public?Statement?apply(Statement?base,?Description?description)?{
?7????????return?new?FailOnTimeout(base,?fMillis);
?8?????}
?9?}
10?public?class?ExpectedException?implements?TestRule?{
11?????public?static?ExpectedException?none()?{
12????????return?new?ExpectedException();
13?????}
14?????private?Matcher<Object>?fMatcher=?null;
15?????private?ExpectedException()?{
16?????}
17?????public?Statement?apply(Statement?base,
18????????????org.junit.runner.Description?description)?{
19????????return?new?ExpectedExceptionStatement(base);
20?????}
21?????public?void?expect(Matcher<?>?matcher)?{
22????????if?(fMatcher?==?null)
23????????????fMatcher=?(Matcher<Object>)?matcher;
24????????else
25????????????fMatcher=?both(fMatcher).and(matcher);
26?????}
27?????public?void?expect(Class<??extends?Throwable>?type)?{
28????????expect(instanceOf(type));
29?????}
30?????public?void?expectMessage(String?substring)?{
31????????expectMessage(containsString(substring));
32?????}
33?????public?void?expectMessage(Matcher<String>?matcher)?{
34????????expect(hasMessage(matcher));
35?????}
36?????private?class?ExpectedExceptionStatement?extends?Statement?{
37????????private?final?Statement?fNext;
38????????public?ExpectedExceptionStatement(Statement?base)?{
39????????????fNext=?base;
40????????}
41????????@Override
42????????public?void?evaluate()?throws?Throwable?{
43????????????try?{
44???????????????fNext.evaluate();
45????????????}?catch?(Throwable?e)?{
46???????????????if?(fMatcher?==?null)
47???????????????????throw?e;
48???????????????Assert.assertThat(e,?fMatcher);
49???????????????return;
50????????????}
51????????????if?(fMatcher?!=?null)
52???????????????throw?new?AssertionError("Expected?test?to?throw?"
53??????????????????????+?StringDescription.toString(fMatcher));
54????????}
55?????}
56?????private?Matcher<Throwable>?hasMessage(final?Matcher<String>?matcher)?{
57????????return?new?TypeSafeMatcher<Throwable>()?{
58????????????public?void?describeTo(Description?description)?{
59???????????????description.appendText("exception?with?message?");
60???????????????description.appendDescriptionOf(matcher);
61????????????}
62????????????@Override
63????????????public?boolean?matchesSafely(Throwable?item)?{
64???????????????return?matcher.matches(item.getMessage());
65????????????}
66????????};
67?????}
68?}

?

RuleChain

RuleChain提供一種將多個TestRule串在一起執行的機制,它首先從outChain()方法開始創建一個最外層的TestRule創建的Statement,而后調用round()方法,不斷向內層添加TestRule創建的Statement。如其注釋文檔中給出的一個例子:

1?@Rule
2?public?TestRule?chain=?RuleChain
3?????????????????????.outerRule(new?LoggingRule("outer?rule"))
4?????????????????????.around(new?LoggingRule("middle?rule"))
5?????????????????????.around(new?LoggingRule("inner?rule"));

?

如果LoggingRule只是類似ExternalResource中的實現,并且在before()方法中打印starting…,在after()方法中打印finished…,那么這條鏈的執行結果為:

starting?outer?rule
starting?middle?rule
starting?inner?rule
finished?inner?rule
finished?middle?rule
finished?outer?rule

?

由于TestRuleapply()方法是根據的當前傳入的Statement,創建一個新的Statement,以決定當前TestRule邏輯的執行位置,因而第一個調用apply()TestRule產生的Statement將在Statement鏈的最里面,也正是有這樣的邏輯,所以around()方法實現的時候,都是把新加入的TestRule放在第一個位置,然后才保持其他已存在的TestRule位置不變。

?1?public?class?RuleChain?implements?TestRule?{
?2?????private?static?final?RuleChain?EMPTY_CHAIN=?new?RuleChain(
?3????????????Collections.<TestRule>?emptyList());
?4?????private?List<TestRule>?rulesStartingWithInnerMost;
?5?????public?static?RuleChain?emptyRuleChain()?{
?6????????return?EMPTY_CHAIN;
?7?????}
?8?????public?static?RuleChain?outerRule(TestRule?outerRule)?{
?9????????return?emptyRuleChain().around(outerRule);
10?????}
11?????private?RuleChain(List<TestRule>?rules)?{
12????????this.rulesStartingWithInnerMost=?rules;
13?????}
14?????public?RuleChain?around(TestRule?enclosedRule)?{
15????????List<TestRule>?rulesOfNewChain=?new?ArrayList<TestRule>();
16????????rulesOfNewChain.add(enclosedRule);
17????????rulesOfNewChain.addAll(rulesStartingWithInnerMost);
18????????return?new?RuleChain(rulesOfNewChain);
19?????}
20?????public?Statement?apply(Statement?base,?Description?description)?{
21????????for?(TestRule?each?:?rulesStartingWithInnerMost)
22????????????base=?each.apply(base,?description);
23????????return?base;
24?????}
25?}

?

TestRuleStatement的運行

TestRule實例的運行都是被封裝在一個叫RunRulesStatement中運行的。在構造RunRules實例是,傳入TestRule實例的集合,然后遍歷所有的TestRule實例,為每個TestRule實例調用一遍apply()方法以構造出要執行TestRuleStatement鏈。類似上小節的RuleChain,這里在前面的TestRule構造的Statement被是最終構造出的Statement的最里層,結合TestClass在獲取注解字段的順序時,先查找子類,再查找父類,因而子類的TestRule實例產生的Statement是在Statement鏈的最里層,從而保證了類似ExternalResource實現中,before()方法的執行父類要比子類要早,而after()方法的執行子類要比父類要早的特性。

?1?public?class?RunRules?extends?Statement?{
?2?????private?final?Statement?statement;
?3?????public?RunRules(Statement?base,?Iterable<TestRule>?rules,?Description?description)?{
?4????????statement=?applyAll(base,?rules,?description);
?5?????}
?6?????@Override
?7?????public?void?evaluate()?throws?Throwable?{
?8????????statement.evaluate();
?9?????}
10?????private?static?Statement?applyAll(Statement?result,?Iterable<TestRule>?rules,
11????????????Description?description)?{
12????????for?(TestRule?each?:?rules)
13????????????result=?each.apply(result,?description);
14????????return?result;
15?????}
16?}

?


總結

以上是生活随笔為你收集整理的深入JUnit源码之Rule的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

中文字幕一区av | 国产日产精品一区二区三区四区的观看方式 | 成人av影视在线 | 亚洲狠狠丁香婷婷综合久久久 | 91福利小视频 | 色操插| 高清免费av在线 | 久草在线久草在线2 | 亚洲黄色小说网 | 亚洲免费公开视频 | av天天草| 久草视频在线免费播放 | 18久久久久久 | 国产精品嫩草影视久久久 | 久久男人影院 | 激情av一区二区 | 国产精品福利一区 | 69国产盗摄一区二区三区五区 | 亚洲色图激情文学 | 亚洲高清在线 | 日韩精品无 | 人人插超碰 | 久久精品99久久久久久 | 精品国产电影 | 国产色婷婷在线 | 久久精品久久久精品美女 | 国产精品一区二区在线观看 | 国产精品涩涩屋www在线观看 | 91免费看片黄| 免费成人av在线 | 国产成人性色生活片 | 免费欧美高清视频 | 涩涩网站在线看 | 在线观看岛国av | 天堂va在线高清一区 | 婷婷亚洲综合五月天小说 | 麻豆一区在线观看 | 欧美视频www | 久久草草热国产精品直播 | 国产一卡二卡四卡国 | 欧美一区二区日韩一区二区 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 欧美激情综合网 | 国产婷婷视频在线 | 狠狠色丁婷婷日日 | 精品亚洲视频在线观看 | 四虎影视4hu4虎成人 | 日韩精品一区二区三区第95 | 伊人一级 | 亚洲视频 中文字幕 | 91视频观看免费 | 国产精品嫩草影视久久久 | 欧美另类交人妖 | 在线观看av黄色 | www.夜夜操| 91精品一区二区三区久久久久久 | 99热在线免费观看 | 成人xxxx | av成人在线观看 | 国产成人精品在线 | 99re国产视频 | www日韩在线观看 | 亚洲成av片人久久久 | 久久久精华网 | 91爱爱中文字幕 | 午夜国产在线 | 国产精品久久久久久久久久直播 | 91麻豆精品国产91久久久无限制版 | www色片| 久草精品电影 | 色婷婷狠狠操 | 高清精品久久 | 精品国产1区 | www.天天草 | 99热这里只有精品久久 | 99视频+国产日韩欧美 | 国产精品久久久久久av | 亚洲视频精选 | 国产无套视频 | 日本韩国欧美在线观看 | 天天干.com | 一区二区久久久久 | 国产一区在线免费 | 亚洲精品午夜久久久久久久 | 国产不卡一区二区视频 | 国产麻豆剧传媒免费观看 | 国产精品久久久久久久av电影 | 亚洲国产高清在线 | av电影 一区二区 | 亚洲精品18日本一区app | 亚洲三级性片 | 色视频在线观看 | 四虎成人精品 | www天天干 | 亚洲美女免费视频 | 免费视频你懂得 | 日韩免费视频观看 | 超碰在线最新网址 | 国产小视频国产精品 | 国产精品免费麻豆入口 | 国产精品成人在线观看 | 久久人人97超碰com | 亚洲国产999| 国产精品高清一区二区三区 | 97超碰在线久草超碰在线观看 | 国产精品毛片一区二区在线 | 在线视频观看91 | 国产精品美女999 | 久草在线视频中文 | 中文字幕免费观看全部电影 | 免费在线国产精品 | 欧美日韩在线播放一区 | 日本最大色倩网站www | 九九久久久 | 成人中文字幕在线 | 免费观看日韩av | 午夜免费电影院 | 午夜电影 电影 | 九九日韩 | 最新久久免费视频 | 亚洲最新av | 1000部国产精品成人观看 | 久久综合久久88 | 日韩 国产 | 国产999在线观看 | 亚洲最新精品 | 亚洲男模gay裸体gay | 久久久久| 97品白浆高清久久久久久 | 亚洲精品乱码久久久久久蜜桃不爽 | 亚洲精品18p | 精品久久久久久久久中文字幕 | 18国产精品福利片久久婷 | 欧美最猛性xxxx | 成人av地址 | 国产精品美女免费视频 | 亚洲在线国产 | 亚洲精品免费在线 | 日韩高清免费无专码区 | 亚洲影院天堂 | 亚洲成人黄色av | 国产精品热 | 日韩av在线不卡 | 久久久精品网站 | 欧美精品中文在线免费观看 | 久久一级片 | 97福利在线观看 | 黄色成人在线网站 | 国产精品一区二区三区久久 | 午夜精品久久久 | 欧美日韩免费在线观看视频 | 中文字幕日韩一区二区三区不卡 | 99色在线 | 欧美一区二区精品在线 | 久久久国产精品麻豆 | 亚洲va欧美va人人爽春色影视 | 美女网站色免费 | 国产玖玖精品视频 | 欧美精品久久久久久久免费 | 亚洲aaa级| 特级西西人体444是什么意思 | 国产区精品 | 九九热免费精品视频 | 欧美特一级片 | 黄色毛片视频免费观看中文 | 91精品视频免费看 | 亚州国产精品 | 久久99精品国产99久久6尤 | 亚洲一区二区麻豆 | 久爱精品在线 | 国产高清av免费在线观看 | 亚洲午夜大片 | 天天爱天天射天天干天天 | 天天爱天天操天天爽 | 成人h电影在线观看 | 久久免费公开视频 | 亚洲成av人片在线观看香蕉 | 免费电影一区二区三区 | 国产精品福利无圣光在线一区 | 4hu视频 | 婷婷丁香综合 | 亚洲乱码久久 | www91在线 | 国产精品久久久久久五月尺 | 亚洲视频在线观看 | 婷婷在线免费 | 黄色的网站在线 | 五月天伊人| 久久精品看片 | 精品久久在线 | 久久电影国产免费久久电影 | 亚洲精品在线观看免费 | 91在线视频免费观看 | 国产手机av | 伊人五月 | 中文字幕人成不卡一区 | 一区二区在线影院 | 91精品国产成人www | 久久中文网 | 91免费视频国产 | 国际精品久久久 | 成人精品99 | 2024国产精品视频 | 成人av久久 | 亚洲污视频| 欧美狠狠色 | 日韩a欧美| 高清免费av在线 | 一区二区免费不卡在线 | 狠狠的操狠狠的干 | 久久久96 | 精品久久久久久久久亚洲 | 亚洲视频一区二区三区在线观看 | 91精品国产综合久久福利 | 久久精品5 | 国产精品久久久久久久av大片 | 香蕉精品在线观看 | 一区二区视频免费在线观看 | 亚洲欧美综合 | 日韩av影视在线观看 | 日日夜夜精品网站 | 人人舔人人射 | 91福利区一区二区三区 | 日韩欧美一区二区三区在线 | 女人高潮一级片 | 成人高清在线 | 久久涩视频 | 色综合a| 午夜久久视频 | 国产一区二区精 | 国产亚洲精品女人久久久久久 | 久久国产露脸精品国产 | 日韩在线视频在线观看 | 最新国产视频 | 狂野欧美激情性xxxx | 国产区高清在线 | 成人在线免费小视频 | 久久国产手机看片 | 一区二区影院 | www.亚洲在线| 在线观看中文字幕av | 国产一级黄色片免费看 | 精品国产一区二区三区四区vr | 尤物一区二区三区 | 激情中文在线 | 在线免费国产视频 | 国内精品久久久久久久 | 日日夜夜中文字幕 | 亚洲 在线| 蜜桃麻豆www久久囤产精品 | 亚洲成色 | 中文字幕一区二区三区四区久久 | 波多野结衣在线播放一区 | 日韩精品中文字幕在线不卡尤物 | 国产福利一区二区三区在线观看 | 午夜精品麻豆 | 人人玩人人添人人 | 91一区二区三区在线观看 | 亚洲乱码久久 | 九九交易行官网 | 欧美电影黄色 | 91久久精品一区二区三区 | 国内精品久久久久影院一蜜桃 | 日韩另类在线 | 久精品视频免费观看2 | 五月综合激情 | 久久久国产精品一区二区三区 | 人人插人人插 | 中文字幕在线视频免费播放 | 五月天激情在线 | 欧美精品一二三 | 国产精品视频免费在线观看 | 欧美有色| 99热.com | 中文资源在线播放 | 精品久久一二三区 | 99久久婷婷国产综合亚洲 | 色在线中文字幕 | 免费成人在线观看视频 | 在线观看网站av | 在线观看的黄色 | 免费手机黄色网址 | 亚洲日韩欧美一区二区在线 | 亚洲黄色在线播放 | 91在线小视频 | 亚洲三级黄色 | 狠狠色丁婷婷日日 | 久久久99精品免费观看 | 精品久久久久免费极品大片 | 久久久人 | 日韩激情视频在线观看 | 久久视频国产 | 亚洲精选99| 免费看十八岁美女 | 久草视频在线看 | 亚洲丁香久久久 | 97热在线观看 | 亚洲人人射 | 欧美一级性 | 久久欧美视频 | 在线日本看片免费人成视久网 | 97av在线视频 | 免费午夜网站 | 黄av在线 | 国产原创av在线 | 国产自偷自拍 | 日韩亚洲在线观看 | 一区二区三区av在线 | 在线最新av | 久久精品久久精品久久精品 | 免费色网 | 久久精品国产一区二区电影 | 一区二区三区高清不卡 | 久久国产高清 | 九九爱免费视频 | 国产精品久久久久久久7电影 | 成片免费观看视频大全 | 亚洲视频在线视频 | 欧美性受极品xxxx喷水 | 国产大陆亚洲精品国产 | 色夜视频 | 免费看国产曰批40分钟 | 国产成人a亚洲精品v | 99久热精品 | 日韩激情视频在线 | 久久电影国产免费久久电影 | 黄色在线看网站 | 日本久久综合视频 | 五月天久久综合网 | 国产中文字幕一区二区 | 国产不卡在线 | 国产视频69 | 日韩欧美第二页 | 欧美午夜精品久久久久久浪潮 | 99r在线观看 | 欧美日韩国产亚洲乱码字幕 | 午夜精品一区二区国产 | 人人藻人人澡人人爽 | 亚洲国产剧情 | 韩日精品在线 | 在线免费观看黄色大片 | 中文字幕二区在线观看 | 成人在线视频你懂的 | 91精品在线免费观看视频 | 久99热| 久久久免费少妇 | 久久久久久电影 | 国产欧美精品一区二区三区四区 | 国产精品视屏 | 黄色国产在线 | 国产成人精品在线播放 | 成人欧美亚洲 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 特级xxxxx欧美 | 久久成人免费 | 激情综合网五月 | 91看片在线免费观看 | 亚洲成人国产 | 天天操操| 久久久久免费网 | 992tv在线观看网站 | av日韩在线网站 | 成人影片免费 | 8090yy亚洲精品久久 | 久久网站av| 欧美激情综合五月色丁香小说 | 五月婷婷在线综合 | 久久精品影片 | 五月天色婷婷丁香 | 午夜精品久久久久久久99无限制 | 久久免费视频在线观看6 | 麻豆果冻剧传媒在线播放 | 在线观看国产日韩 | 在线视频观看亚洲 | 久久在线免费观看 | 国产精品高潮呻吟久久久久 | 久久超碰网 | 夜色资源站wwwcom | 午夜 免费 | 在线成人免费 | 手机av看片 | 国产xxxx做受性欧美88 | 国产又粗又猛又爽又黄的视频先 | 96亚洲精品久久 | 亚洲一区美女视频在线观看免费 | 午夜在线观看 | 黄色午夜网站 | 特级黄色一级 | 久草视频免费看 | 色婷婷五 | 久久都是精品 | 天天操天天舔天天爽 | 日韩免费一二三区 | 国产精品地址 | 在线视频精品 | 中文字幕日韩一区二区三区不卡 | 亚洲天天看 | 福利视频一区二区 | 午夜精品久久久久久中宇69 | 九九色视频 | 中文字幕 在线看 | 精品亚洲成a人在线观看 | 九九热精 | 国产精品自产拍在线观看蜜 | 97精品国产97久久久久久春色 | 韩国一区在线 | 人人爱人人舔 | 久久国语露脸国产精品电影 | 99久久毛片 | 久久国产高清视频 | 欧美激情亚洲综合 | 伊人狠狠色 | 国产精品亚洲片在线播放 | 国产成人av在线影院 | 91成人精品一区在线播放 | 黄色精品视频 | 亚洲激情 欧美激情 | 国产第一福利 | 国产一级91 | 欧美日韩国产区 | 久久精品一二区 | 97视频人人 | 欧美一区二区三区不卡 | 久久影院中文字幕 | 亚洲精品久久久久久中文传媒 | 国产老熟 | 中国一区二区视频 | 国产精品 国内视频 | 97av在线视频免费播放 | 六月色播 | 亚洲资源| 亚洲综合日韩在线 | 亚洲成人精品在线 | 亚洲精品免费看 | 美女网站色 | 在线观看国产成人av片 | 九九综合九九 | 精品国内 | 久久精品免费观看 | 亚洲三级黄色 | 美女国产免费 | 粉嫩一区二区三区粉嫩91 | 国产在线不卡一区 | 欧美一区日韩精品 | 黄在线免费观看 | 国产成人精品一区二区三区免费 | 狠狠色丁香婷婷综合最新地址 | 亚洲资源网 | 久草在线视频资源 | 欧美一级xxxx | 91一区二区三区在线观看 | 激情综合五月天 | 成人av高清 | 亚洲精品女人 | 国产手机免费视频 | 国产精品久久久久久久久毛片 | 成人91免费视频 | 日韩高清一二区 | 久久久污 | 99久久久久成人国产免费 | 国产精品乱码在线 | 97视频在线看 | 狠狠干狠狠色 | 久久久999精品视频 国产美女免费观看 | 福利一区视频 | 精品国产欧美一区二区三区不卡 | 免费视频a | 99精品视频中文字幕 | 在线黄频| 中国美女一级看片 | 欧美日韩在线精品一区二区 | 91香蕉视频污在线 | 91大神精品视频在线观看 | 亚洲国产精品一区二区尤物区 | 中文字幕丝袜一区二区 | 高清一区二区三区 | 日日干夜夜爱 | 色成人亚洲| 日韩精品在线免费播放 | 久久综合久色欧美综合狠狠 | 精品国产自在精品国产精野外直播 | 欧美日韩视频 | 久久成人在线 | 国产精品久久久久久久久久久不卡 | 色网免费观看 | av中文天堂在线 | 亚洲电影图片小说 | 亚洲精品国久久99热 | 免费成人在线电影 | 最近免费中文字幕mv在线视频3 | 国产精品videossex国产高清 | 97超在线视频 | 精品久久五月天 | 在线影院中文字幕 | 久久在线观看视频 | 日韩区视频 | 午夜久久电影网 | 日韩黄色免费 | 99r在线观看 | 色999视频| 免费福利在线观看 | 午夜精品一区二区三区免费视频 | avlulu久久精品 | 中文字幕av在线免费 | 久久久久欧美精品999 | 欧美性生交大片免网 | 欧美特一级片 | 天天艹天天干天天 | 亚洲在线视频观看 | 成人高清在线 | 西西4444www大胆无视频 | 综合伊人av | 久久狠狠一本精品综合网 | 不卡电影免费在线播放一区 | 中文字幕精品一区久久久久 | 黄色成人av | 久久躁日日躁aaaaxxxx | 99久热精品 | 97国产| 伊人天天狠天天添日日拍 | 综合色在线 | 日本午夜在线亚洲.国产 | 久久福利剧场 | 国产精品久久久久一区二区三区共 | 精品91久久久久 | 亚洲美女在线国产 | 三级av在线 | 久精品视频 | 大型av综合网站 | 黄色免费观看视频 | 久草 | 97超视频免费观看 | 超碰夜夜 | 免费观看性生交大片3 | 亚洲专区中文字幕 | 不卡视频一区二区三区 | 97色se| 午夜av片| 国产一区网址 | 欧美性春潮 | 欧美一区在线观看视频 | 在线影院 国内精品 | 国产小视频在线观看免费 | 97国产在线视频 | 精品国产亚洲一区二区麻豆 | 九九视频免费观看视频精品 | 久久久婷| 色综合天天综合 | 国产剧情在线一区 | 99视频精品免费观看, | 97在线观看免费观看高清 | 免费看色的网站 | 国产人成看黄久久久久久久久 | 亚洲精品66| 午夜影院一区 | 午夜精选视频 | 99国产精品免费网站 | 精品99在线| 中文字幕亚洲不卡 | 深爱婷婷 | 久久综合免费视频 | 人人爽人人爽人人 | 精品亚洲二区 | 免费网站观看www在线观看 | 欧美怡红院视频 | 中文字幕在线国产 | 国产精品成人一区二区三区 | 狠狠色丁香婷综合久久 | 在线观看日韩av | 久久高清免费视频 | 亚洲精品视频在线观看网站 | 女人18毛片a级毛片一区二区 | 成人久久网 | 国产精品美女久久久久久久久 | 欧美性色综合网站 | 超碰在97 | 国产日韩在线一区 | 69国产在线观看 | 天天爽天天碰狠狠添 | 国产精品黄色av | 欧美成人tv | 色五月激情五月 | h视频日本| 人人爽人人爽人人 | 欧美日韩久久久 | 久久精品视频在线观看免费 | 久久久久一区 | 久久xx视频 | 97成人在线免费视频 | 激情视频在线观看网址 | 欧美精品一区二区三区一线天视频 | 亚洲精品99 | 亚洲午夜剧场 | 激情开心站 | www.香蕉| 国产精品麻豆欧美日韩ww | 成人av一区二区在线观看 | 狠狠亚洲| 日韩经典一区二区三区 | 天天操天天摸天天干 | 久草.com | 麻豆一区二区三区视频 | 国产视频一区在线免费观看 | 久久 地址| 欧美日韩另类在线 | 天天综合久久综合 | 美女视频是黄的免费观看 | 在线亚洲精品 | 九九热久久免费视频 | 欧美成年网站 | 中文字幕黄色 | 亚洲精品视频免费观看 | 欧美高清成人 | 国产第页 | 国产电影黄色av | 97视频免费在线看 | 91精品国产成人www | 中文字幕av在线 | 亚洲最大成人免费网站 | 久久国产精品精品国产色婷婷 | 亚洲综合精品在线 | 精品国产一区二区三区蜜臀 | 五月婷婷狠狠 | 久久国产一区二区三区 | 97成人资源 | 韩日电影在线 | 天天干人人干 | 午夜精品一区二区三区视频免费看 | 亚洲免费国产视频 | av电影中文字幕 | 欧美地下肉体性派对 | 国产无吗一区二区三区在线欢 | 中文字幕免费高清av | 一本—道久久a久久精品蜜桃 | 国产精品久久综合 | 亚洲国产999 | 欧美福利久久 | 日韩欧美视频在线观看免费 | 亚洲男男gaygayxxxgv | 国产精品精品国产 | 亚洲精品高清一区二区三区四区 | 欧美天天综合网 | 香蕉一区 | 成人高清在线观看 | 九九久 | 精品国产一区二区三区不卡 | 精品一二区 | 国产精品永久免费 | 国内精品久久久久久久久久久 | 中文字幕高清在线播放 | 亚洲视频国产 | 综合国产在线观看 | 日韩成人免费在线电影 | 精品96久久久久久中文字幕无 | 亚洲视频在线观看 | 狠狠狠狠狠狠天天爱 | 精品1区2区3区| 毛片久久久 | 国产免费久久 | 国产精品美女网站 | 久久精品99久久 | 欧美乱大交| 欧美性黑人 | 在线亚洲天堂网 | 亚洲视频1区2区 | 欧美日韩激情视频8区 | 国产一区在线视频播放 | 99热官网| 岛国av在线 | 久久久久久久久久毛片 | 精品在线观看一区二区 | 天天综合网国产 | 亚洲精品美女免费 | 久久99精品久久久久久三级 | 91成人在线观看高潮 | 成年人在线免费看片 | 天堂中文在线播放 | 日韩在线看片 | 中文字幕av一区二区三区四区 | 在线亚洲精品 | 国产精品毛片一区视频播 | 免费看毛片在线 | 精品一区二区三区电影 | 高清一区二区三区av | 91最新在线视频 | 欧美性猛片 | 中国一区二区视频 | 色婷婷福利 | 日韩在线视频在线观看 | 人人看人人爱 | 国产免费又爽又刺激在线观看 | 99久久精品免费看国产 | 日本精品久久久久 | 久久久资源 | 在线观看日本高清mv视频 | 色噜噜在线观看视频 | 亚洲有 在线 | 五月天狠狠操 | 98久久 | 丁香 久久 综合 | 色婷五月| 亚洲精品国产精品久久99 | 日韩在线一二三区 | av电影中文字幕在线观看 | 久久精品精品电影网 | 国产免费成人 | 99精品欧美一区二区三区 | 亚洲精品中文字幕视频 | 久久电影日韩 | 精品国产一区二区久久 | 最近最新中文字幕视频 | 手机av在线网站 | 免费下载高清毛片 | 81精品国产乱码久久久久久 | 亚洲国产成人精品电影在线观看 | 中文字幕永久 | 久久99久久99精品免观看软件 | 午夜黄色影院 | 国产精品中文 | www久| 成人99免费视频 | 亚洲精选视频免费看 | 色九九在线 | www.亚洲激情.com | 婷婷丁香在线视频 | 伊甸园永久入口www 99热 精品在线 | av资源在线观看 | 国产大陆亚洲精品国产 | 日本九九视频 | 国产精品久久久久久久久久久不卡 | 欧美性生交大片免网 | 日韩av福利在线 | 欧美日韩国产mv | 久久高清免费视频 | 深爱激情五月网 | 亚洲无吗av| 欧美另类sm图片 | 欧美国产日韩一区二区三区 | 天堂av免费观看 | 色爱区综合激月婷婷 | 高清av在线免费观看 | 午夜黄色大片 | 在线一区二区三区 | 亚洲婷婷网 | 婷婷综合五月天 | 精品久久亚洲 | 国产精品原创av片国产免费 | 天天插天天爱 | av网址aaa | 视频精品一区二区三区 | 中文字幕av在线 | 久久夜色精品国产欧美乱极品 | 狠狠色丁香婷婷综合视频 | 国内精品久久久久影院一蜜桃 | 亚洲精品乱码久久久久v最新版 | 中文字幕亚洲国产 | 日韩精品一区二区三区第95 | 日韩免费一区二区三区 | 97超级碰碰碰碰久久久久 | 国产精品久久久久久久免费观看 | 狠狠插狠狠操 | av一级片| 啪啪免费观看网站 | 久久国产免费视频 | 蜜臀久久99精品久久久无需会员 | 成年人看片 | 久久综合久久伊人 | av在线一二三区 | 91视频麻豆| 亚洲爱爱视频 | 免费在线观看日韩 | 国产中文字幕91 | 久久午夜剧场 | 欧美日韩亚洲国产一区 | 黄色一级片视频 | 久久人网 | 天天天操天天天干 | 国产人成免费视频 | 久久激情综合网 | 麻豆久久久久久久 | 日本久久中文字幕 | 亚洲成人黄色在线观看 | 国产一区二区在线视频观看 | 欧美精品久久久久久久久久白贞 | 91丨porny丨九色 | 日韩激情中文字幕 | 91视频中文字幕 | 一区二区三区电影在线播 | 在线观看国产永久免费视频 | 亚洲国产免费网站 | 操一草| 国产亚洲日本 | 国产高清在线观看av | 午夜精品福利一区二区 | 亚洲91精品 | 激情五月婷婷综合 | 一区二区三区日韩在线观看 | 国产精品99久久久久久小说 | 久久er99热精品一区二区三区 | 久久99精品久久只有精品 | 在线观看av国产 | 亚州国产精品久久久 | 国产美女主播精品一区二区三区 | 欧美韩国日本在线观看 | 久久久久久国产精品 | 精品久久美女 | 日日干干夜夜 | 国产精品视频久久 | 91一区在线观看 | 日韩一区在线播放 | 一级c片 | 国产视频高清 | 一区二区精品国产 | 一区二区三区观看 | 国产精品露脸在线 | 日韩有码中文字幕在线 | 人人插人人艹 | 狠狠狠狠狠狠干 | av网站在线免费观看 | 日韩视频中文 | 久久综合九色综合久久久精品综合 | 中文字幕乱在线伦视频中文字幕乱码在线 | av网址aaa | 日韩久久精品一区二区 | 欧美福利视频 | 欧美一区二区在线 | 欧美三级免费 | 成人小视频在线 | 91视频在线免费下载 | 一级片视频免费观看 | 热久久影视 | 国产精品一区二区吃奶在线观看 | 蜜臀91丨九色丨蝌蚪老版 | 久久久久久视频 | 欧美色图亚洲图片 | 免费特级黄色片 | 91成人在线网站 | 婷婷中文字幕 | 天天人人 | 欧美日韩p片 | 免费av黄色 | 亚洲精品视频一二三 | 91网免费观看 | 1024手机在线看 | 国产一级片免费观看 | 久久夜色精品国产欧美乱 | 欧美日韩一区二区久久 | 欧美日韩免费观看一区二区三区 | 黄网站a| 欧洲成人av | 高清不卡毛片 | 四虎在线免费观看视频 | 欧美一级免费黄色片 | 国产成人在线免费观看 | 五月婷婷伊人网 | 国产在线观看二区 | av在线电影网站 | 免费精品国产 | 伊人狠狠色丁香婷婷综合 | 波多野结衣亚洲一区二区 | 日韩综合精品 | 欧美日韩中文字幕在线视频 | 有没有在线观看av | 天天激情在线 | 久久久官网 | 日韩一级电影网站 | 精品一二三区视频 | 九九九九精品 | 日韩在线观看影院 | 欧美人交a欧美精品 | 成人一级| av成人亚洲 | 久久国产精品一国产精品 | 久久综合中文色婷婷 | 精品国产人成亚洲区 | 欧美日韩中文另类 | 人人澡人人爽欧一区 | 91在线视频免费观看 | 涩涩色亚洲一区 | 天天干天天干天天干天天干天天干天天干 | 欧美日韩破处 | 美女视频网站久久 | 天天干天天拍天天操 | 国产中文字幕视频在线观看 | 玖玖爱国产在线 | 夜夜爽www | 天天天干 | 91在线视频一区 | 国产一区二区在线免费播放 | 97**国产露脸精品国产 | 97av视频| 伊人成人久久 | 久久伦理视频 | 久久夜av| 国产成人精品免费在线观看 | v片在线看| 国内精品久久久久久久久久清纯 | 色播五月激情综合网 | 久草手机视频 | 亚洲国产日韩欧美 | 久久久久久久久久影院 | 黄色毛片网站在线观看 | 99r在线| 国产又粗又猛又色 | 91c网站色版视频 | 国产成人精品一区二区三区福利 | 国产精品资源在线观看 | 去看片 | www.黄色 | 一区二区三区四区五区在线视频 | 日日爽 | 亚洲精品2区 | 97网| 国内久久看 | 五月激情在线 | 天天综合天天综合 | 国产一二三区在线观看 | 手机av电影在线观看 | 深夜国产福利 | 91精品久久久久久粉嫩 | 三级在线视频观看 | 精品久久毛片 | 黄色日批网站 | 综合久久影院 | 丁香资源影视免费观看 | 国产精品一区二区三区在线 | 色精品视频| 久久不色 | 97超碰国产精品 | 日韩超碰在线 | 国产精品com | 99综合视频| 久久久久久久久久免费视频 | 日韩黄视频 | 成年人国产视频 | 国产在线观看你懂得 | 在线成人看片 | 丝袜美腿在线视频 | 久久精品国产一区二区三 | 国产精品一区二区三区四区在线观看 | 欧美日韩在线观看不卡 | 久久a视频 | 久久午夜网 | 在线观看中文字幕第一页 | 色综合久久88色综合天天 | 欧美日韩午夜 | 久久女同性恋中文字幕 | 97人人模人人爽人人喊中文字 | 美女网站一区 | www.亚洲视频 | 首页中文字幕 | 国产日韩三级 | 精品亚洲视频在线观看 | 精品一区精品二区高清 | 国产成人精品亚洲 | 西西www4444大胆在线 | 日韩免费一区二区在线观看 | 精品国产一区二区三区免费 | 久久综合久久八八 | 亚洲一区久久 | 天天添夜夜操 | 美女网站在线看 | 色婷丁香| 欧美精品小视频 | 干 操 插 | 天天爱天天操天天爽 | 精品国产一区二区在线 | 激情婷婷综合网 | 亚洲精品久久久久中文字幕二区 | av综合av | 蜜臀91丨九色丨蝌蚪老版 | 欧美 日韩 性| 国产一级片直播 | 久草影视在线观看 | 久久精品香蕉视频 | 久久人人爽 | 91九色视频国产 | 国产极品尤物在线 | 99色在线 | 欧美日韩高清一区二区 国产亚洲免费看 | 在线观看91精品视频 | 久久久久久毛片精品免费不卡 | 中文字幕在线国产 | 国产一区在线免费 | 超碰97网站 | 国产小视频91 | 久久区二区 | 天天搞天天 | 精品国产视频在线 | 午夜精品久久久 | 国产不卡免费 | 国产特级毛片aaaaaa毛片 | 精品在线观看一区二区三区 | 欧美韩国在线 | 国产美女在线免费观看 | 亚洲综合色网站 | 黄色一级大片在线免费看产 | 人人添人人 |