---
generated_at: 2026-01-28 10:30:00
metrics:
  claims_total: 76
  claims_with_evidence: 76
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：widgets.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で該当の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：76 / 76、根拠なし：0
- 優先レビュー（高）
  1. **認証・セキュリティ関連**：GdprWebViewのクッキー設定、CommonWebViewの認証ヘッダー
  2. **通知機能**：ShowMessageの各通知メソッド
  3. **状態管理**：CommonAppBarのカートカウント、ウィッシュリスト状態

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `lib/widgets/common_app_bar.dart`（84行）
- E-02: `lib/widgets/common_date_picker.dart`（165行）
- E-03: `lib/widgets/common_drop_down_field.dart`（112行）
- E-04: `lib/widgets/common_error_msg.dart`（22行）
- E-05: `lib/widgets/common_webview.dart`（79行）
- E-06: `lib/widgets/common_widgets.dart`（260行）
- E-07: `lib/widgets/empty_data_view.dart`（68行）
- E-08: `lib/widgets/gdpr_webview.dart`（154行）
- E-09: `lib/widgets/image_view.dart`（46行）
- E-10: `lib/widgets/loader.dart`（43行）
- E-11: `lib/widgets/price_widget.dart`（58行）
- E-12: `lib/widgets/show_message.dart`（96行）
- E-13: `lib/widgets/wishlist_compare_widget.dart`（77行）

## 3) Claims と根拠の対応（レビューの主戦場）

### CommonAppBar（E-01）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | AppBarが正しく構築されること | E-01: L27-79 build()メソッド | ○ |
| C-02 | isInCartScreen=trueの場合アクションアイコンが非表示 | E-01: L37,47,57 if (!isInCartScreen)条件 | ○ |
| C-03 | index=0の場合検索画面へのナビゲーションが無効 | E-01: L40 if (index != 0)条件 | ○ |
| C-04 | カートカウントがStreamから正しく反映される | E-01: L58-76 StreamBuilder実装 | ○ |
| C-05 | preferredSizeがAppBarの高さを返す | E-01: L82 preferredSize getter | ○ |

### CommonDatePicker（E-02）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-06 | controller.textが有効な日付の場合selectedDateが設定される | E-02: L45-50 initState内の日付パース | ○ |
| C-07 | controller.textが空の場合selectedDateがDateTime.now()のまま | E-02: L52-54 else節 | ○ |
| C-08 | controller.textが"null"の場合空文字列に設定 | E-02: L46 != 'null'条件 | ○ |
| C-09 | 日付選択後にcontroller.valueが更新される | E-02: L104-105 setState内のvalue更新 | ○ |
| C-10 | save=0の場合appStoragePref.setDateが呼ばれる | E-02: L94-96 if (widget.save == 0)条件 | ○ |
| C-11 | 値が空の場合"*Required"を返す | E-02: L156-161 validator実装 | ○ |
| C-12 | 値がある場合nullを返す | E-02: L159-160 validator実装 | ○ |

### CommonDropDownField（E-03）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-13 | itemListが空の場合SizedBoxを返す | E-03: L39 itemList?.isEmpty == true条件 | ○ |
| C-14 | ドロップダウンが正しく表示される | E-03: L45-108 DropdownButtonFormField実装 | ○ |
| C-15 | 値がnullの場合"* Required"を返す | E-03: L51-56 validator実装 | ○ |
| C-16 | 値変更時にcallBackが呼ばれる | E-03: L58-61 onChanged実装 | ○ |

### ErrorMessage（E-04）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-17 | エラーメッセージがCenterにラップされて返される | E-04: L14-20 errorMsg静的メソッド | ○ |

### CommonWebView（E-05）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-18 | WebViewが正しいURLで初期化される | E-05: L32-33 initialUrlRequest設定 | ○ |
| C-19 | リクエストヘッダーに認証情報が含まれる | E-05: L34-41 headers設定 | ○ |
| C-20 | プログレス更新時にloadDataが更新される | E-05: L49-54 onProgressChanged実装 | ○ |
| C-21 | loadData<1の場合LinearProgressIndicatorが表示 | E-05: L65-73 Visibility条件 | ○ |

### CommonWidgets（E-06）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-22 | TextFormFieldが正しく生成される | E-06: L16-101 getTextField実装 | ○ |
| C-23 | isRequired=trueの場合ラベルにアスタリスクが付く | E-06: L42-57 isRequired条件分岐 | ○ |
| C-24 | showPassword=falseの場合obscureText=true | E-06: L38 obscureText: !showPassword | ○ |
| C-25 | readOnly=trueの場合入力不可 | E-06: L34 readOnly: readOnly ?? false | ○ |
| C-26 | 指定した高さのSizedBoxが返される | E-06: L104 getHeightSpace実装 | ○ |
| C-27 | 指定した幅のSizedBoxが返される | E-06: L106 getWidthSpace実装 | ○ |
| C-28 | テキストが正しく表示される | E-06: L109-120 getDrawerTileText実装 | ○ |
| C-29 | isBold=trueの場合太字で大きいフォント | E-06: L115-116 isBold条件分岐 | ○ |
| C-30 | ボタンが正しく生成される | E-06: L123-159 appButton実装 | ○ |
| C-31 | showIcon=trueの場合カートアイコンが表示 | E-06: L143-148 if (showIcon)条件 | ○ |
| C-32 | onPressed実行時にコールバックが呼ばれる | E-06: L138 onPressed: onPressed | ○ |
| C-33 | thickness=1のDividerが返される | E-06: L161-163 divider実装 | ○ |
| C-34 | 価格テキストが正しく表示される | E-06: L166-169 priceText実装 | ○ |
| C-35 | ドロップダウンが正しく生成される | E-06: L171-258 getDropdown実装 | ○ |
| C-36 | labelTextが空でない場合ラベル行が表示 | E-06: L185-192 if (labelText != "")条件 | ○ |

### EmptyDataView（E-07）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-37 | 空データビューが正しく表示される | E-07: L30-66 build実装 | ○ |
| C-38 | カスタムassetPathが適用される | E-07: L40 LottieBuilder.asset(assetPath) | ○ |
| C-39 | showDescription=trueの場合説明文が表示 | E-07: L53-63 if(showDescription)条件 | ○ |
| C-40 | カスタムサイズが適用される | E-07: L41-42 width/height引数 | ○ |

### GdprWebView（E-08）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-41 | bagisto_sessionクッキーが設定される | E-08: L51-63 setCookie for bagisto_session | ○ |
| C-42 | XSRF-TOKENクッキーが設定される | E-08: L66-78 setCookie for XSRF-TOKEN | ○ |
| C-43 | cookie-consentクッキーが設定される | E-08: L81-91 setCookie for cookie-consent | ○ |
| C-44 | httpsの場合isSecure=trueで設定 | E-08: L43 isSecure = url.scheme == 'https' | ○ |
| C-45 | httpの場合isSecure=falseで設定 | E-08: L43 isSecure計算ロジック | ○ |
| C-46 | cookiesSet=falseの場合CircularProgressIndicator表示 | E-08: L151 else節 | ○ |
| C-47 | cookiesSet=trueの場合WebViewが表示 | E-08: L103-150 cookiesSet条件分岐 | ○ |

### ImageView（E-09）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | CachedNetworkImageが正しく生成される | E-09: L36-43 build実装 | ○ |
| C-49 | width/heightが0.0以外の場合サイズが設定 | E-09: L37-38 三項演算子条件 | ○ |
| C-50 | width/heightが0.0の場合nullが設定 | E-09: L37-38 三項演算子のelse | ○ |
| C-51 | urlがnullの場合プレースホルダーが表示 | E-09: L40 url??""とerrorWidget | ○ |
| C-52 | 画像読み込みエラー時にプレースホルダー表示 | E-09: L42 errorWidget実装 | ○ |
| C-53 | カスタムplaceHolderが適用される | E-09: L41-42 placeHolder引数 | ○ |

### Loader（E-10）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-54 | CircularProgressIndicatorが中央に表示 | E-10: L20,33 Align.centerとCircularProgressIndicator | ○ |
| C-55 | loadingMessageが設定されている場合テキスト表示 | E-10: L25-31 Text widget | ○ |
| C-56 | loadingMessageが空の場合テキストとスペースが非表示 | E-10: L32 if条件 | ○ |
| C-57 | loadingMessageがnullの場合テキストが空文字列 | E-10: L27 loadingMessage ?? '' | ○ |

### PriceWidgetHtml（E-11）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-58 | HTMLがHtmlWidgetでレンダリングされる | E-11: L26-54 HtmlWidget実装 | ○ |
| C-59 | line-throughクラスに打ち消し線スタイル適用 | E-11: L29-30 customStylesBuilder | ○ |
| C-60 | font-semiboldクラスにfont-weight: 600適用 | E-11: L31-32 customStylesBuilder | ○ |
| C-61 | font-mediumクラスにfont-weight: 500適用 | E-11: L33-34 customStylesBuilder | ○ |
| C-62 | 該当クラスがない場合nullが返される | E-11: L52 return null | ○ |

### ShowMessage（E-12）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-63 | 成功通知が緑色背景で表示 | E-12: L18-36 successNotification実装 | ○ |
| C-64 | 成功通知にチェックアイコンが表示 | E-12: L27-29 Icons.check_circle_outline | ○ |
| C-65 | エラー通知が赤色背景で表示 | E-12: L38-56 errorNotification実装 | ○ |
| C-66 | エラー通知にキャンセルアイコンが表示 | E-12: L47-49 Icons.cancel_outlined | ○ |
| C-67 | 警告通知がアンバー色背景で表示 | E-12: L58-77 warningNotification実装 | ○ |
| C-68 | カスタムtitleが設定された場合そのタイトル表示 | E-12: L61 title ?? StringConstants.warning | ○ |
| C-69 | カスタム通知が表示される | E-12: L79-94 showNotification実装 | ○ |
| C-70 | messageがnullの場合デフォルトメッセージ表示 | E-12: L91 message ?? StringConstants.somethingWrong | ○ |

### wishlist_compare_widget（E-13）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-71 | isInWishlist=trueの場合塗りつぶしハートアイコン | E-13: L33-41 Icons.favorite | ○ |
| C-72 | isInWishlist=falseの場合枠線ハートアイコン | E-13: L42-48 Icons.favorite_border | ○ |
| C-73 | isInWishlist=nullの場合枠線ハートアイコン | E-13: L33 isInWishlist ?? false | ○ |
| C-74 | wishlistIconコンテナに正しいスタイル適用 | E-13: L17-30 Container decoration | ○ |
| C-75 | 比較アイコンが正しく表示される | E-13: L52-76 compareIcon実装 | ○ |
| C-76 | compareIconコンテナに正しいスタイル適用 | E-13: L54-70 Container decoration | ○ |

## 4) 不足情報（Unknown / Missing）
- なし：全てのテストケースについてソースコードから根拠を確認済み

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全てのクレームに対してソースコードの根拠あり
- 注意点：
  - GdprWebViewのクッキー処理はセキュリティ上重要なため、実際のテスト実行時に詳細確認を推奨
  - CommonWebViewの認証ヘッダー設定についても同様に確認推奨

## 6) レビュアーチェックリスト（最小）
- [ ] 各ウィジェットのbuildメソッドに対するテストケースが網羅されているか確認
- [ ] 境界値テスト（null、空文字列、空リスト）が適切に含まれているか確認
- [ ] セキュリティ関連（認証、クッキー）のテストケースの優先度が適切か確認
- [ ] バリデーション処理のテストケースが漏れなく含まれているか確認
- [ ] カスタムスタイル/カスタムパラメータのテストが適切に設定されているか確認
