Merge lp:~dobey/unity-scope-click/require-both into lp:unity-scope-click

Proposed by dobey
Status: Merged
Approved by: dobey
Approved revision: 453
Merged at revision: 457
Proposed branch: lp:~dobey/unity-scope-click/require-both
Merge into: lp:unity-scope-click
Diff against target: 99 lines (+40/-13)
3 files modified
libclickscope/click/preview.cpp (+19/-12)
libclickscope/click/preview.h (+2/-1)
libclickscope/tests/test_preview.cpp (+19/-0)
To merge this branch: bzr merge lp:~dobey/unity-scope-click/require-both
Reviewer Review Type Date Requested Status
Paweł Stołowski (community) Needs Fixing
Antti Kaijanmäki (community) Approve
PS Jenkins bot continuous-integration Pending
Review via email: mp+295511@code.launchpad.net

Commit message

Don't specify that only 'rating' as required for reviews.

To post a comment you must log in.
Revision history for this message
Antti Kaijanmäki (kaijanmaki) wrote :

LGTM.

review: Approve
Revision history for this message
Paweł Stołowski (stolowski) wrote :

30 + Review existing_review;
31 if (has_reviewed) {

Review will not get initialized here and if has_reviewed is false it may have random id in review.id != 0 check inside createRatingWidget. Please change it to "Review existing_review {}" or initialize it to sane defaults manually.

Otherwise looks good.

review: Needs Fixing

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'libclickscope/click/preview.cpp'
--- libclickscope/click/preview.cpp 2016-05-25 16:20:04 +0000
+++ libclickscope/click/preview.cpp 2016-05-31 17:24:38 +0000
@@ -848,6 +848,21 @@
848 return future.get();848 return future.get();
849}849}
850850
851scopes::PreviewWidget InstalledPreview::createRatingWidget(const click::Review& review) const
852{
853 scopes::PreviewWidget rating("rating", "rating-input");
854
855 if (review.id != 0) {
856 qDebug() << "Review for current user already exists, review id:" << review.id;
857 rating = scopes::PreviewWidget(std::to_string(review.id), "rating-edit"); // pass review id via widget id
858 rating.add_attribute_value("review", scopes::Variant(review.review_text));
859 rating.add_attribute_value("rating", scopes::Variant(review.rating));
860 rating.add_attribute_value("author", scopes::Variant(review.reviewer_name));
861 }
862
863 return rating;
864}
865
851void InstalledPreview::run(unity::scopes::PreviewReplyProxy const& reply)866void InstalledPreview::run(unity::scopes::PreviewReplyProxy const& reply)
852{867{
853 const bool force_cache = (metadata.internet_connectivity() == scopes::QueryMetadata::ConnectivityStatus::Disconnected);868 const bool force_cache = (metadata.internet_connectivity() == scopes::QueryMetadata::ConnectivityStatus::Disconnected);
@@ -935,21 +950,13 @@
935 scopes::PreviewWidgetList review_input;950 scopes::PreviewWidgetList review_input;
936 bool has_reviewed = reviews.size() > 0 && reviews.front().reviewer_username == userid;951 bool has_reviewed = reviews.size() > 0 && reviews.front().reviewer_username == userid;
937952
953 Review existing_review;
954 existing_review.id = 0;
938 if (has_reviewed) {955 if (has_reviewed) {
939 auto existing_review = reviews.front();956 existing_review = reviews.front();
940 reviews.pop_front();957 reviews.pop_front();
941 qDebug() << "Review for current user already exists, review id:" << existing_review.id;
942 scopes::PreviewWidget rating(std::to_string(existing_review.id), "rating-edit"); // pass review id via widget id
943 rating.add_attribute_value("required", scopes::Variant("rating"));
944 rating.add_attribute_value("review", scopes::Variant(existing_review.review_text));
945 rating.add_attribute_value("rating", scopes::Variant(existing_review.rating));
946 rating.add_attribute_value("author", scopes::Variant(existing_review.reviewer_name));
947 review_input.push_back(rating);
948 } else {
949 scopes::PreviewWidget rating("rating", "rating-input");
950 rating.add_attribute_value("required", scopes::Variant("rating"));
951 review_input.push_back(rating);
952 }958 }
959 review_input.push_back(createRatingWidget(existing_review));
953 cachedWidgets.push(review_input);960 cachedWidgets.push(review_input);
954 cachedWidgets.layout.appendToColumn(cachedWidgets.layout.singleColumn.column1, review_input);961 cachedWidgets.layout.appendToColumn(cachedWidgets.layout.singleColumn.column1, review_input);
955 cachedWidgets.layout.appendToColumn(cachedWidgets.layout.twoColumns.column1, review_input);962 cachedWidgets.layout.appendToColumn(cachedWidgets.layout.twoColumns.column1, review_input);
956963
=== modified file 'libclickscope/click/preview.h'
--- libclickscope/click/preview.h 2016-05-25 16:20:04 +0000
+++ libclickscope/click/preview.h 2016-05-31 17:24:38 +0000
@@ -261,11 +261,12 @@
261261
262 void run(unity::scopes::PreviewReplyProxy const& reply) override;262 void run(unity::scopes::PreviewReplyProxy const& reply) override;
263263
264protected:
265 void getApplicationUri(const Manifest& manifest, std::function<void(const std::string&)> callback);264 void getApplicationUri(const Manifest& manifest, std::function<void(const std::string&)> callback);
266 std::string get_consumer_key();265 std::string get_consumer_key();
267 scopes::PreviewWidgetList createButtons(const std::string& uri,266 scopes::PreviewWidgetList createButtons(const std::string& uri,
268 const click::Manifest& manifest);267 const click::Manifest& manifest);
268 scopes::PreviewWidget createRatingWidget(const click::Review& review) const;
269
269private:270private:
270 scopes::ActionMetadata metadata;271 scopes::ActionMetadata metadata;
271 CachedPreviewWidgets cachedWidgets;272 CachedPreviewWidgets cachedWidgets;
272273
=== modified file 'libclickscope/tests/test_preview.cpp'
--- libclickscope/tests/test_preview.cpp 2016-04-27 14:06:29 +0000
+++ libclickscope/tests/test_preview.cpp 2016-05-31 17:24:38 +0000
@@ -584,6 +584,25 @@
584 ASSERT_EQ(get_action_from_widgets(widgets, 0, 1), "uninstall_click");584 ASSERT_EQ(get_action_from_widgets(widgets, 0, 1), "uninstall_click");
585}585}
586586
587TEST_F(InstalledPreviewTest, testReviewWidgetIsNew) {
588 click::InstalledPreview preview(result, metadata, client, pay_package, depts);
589 click::Review existing_review;
590 existing_review.id = 0;
591 auto widget = preview.createRatingWidget(existing_review);
592 ASSERT_EQ(widget.widget_type(), "rating-input");
593}
594
595TEST_F(InstalledPreviewTest, testReviewWidgetIsEdit) {
596 click::InstalledPreview preview(result, metadata, client, pay_package, depts);
597 click::Review existing_review;
598 existing_review.id = 123456789;
599 existing_review.rating = 2.625f;
600 existing_review.review_text = "Mediocre at best.";
601 existing_review.reviewer_name = "reviewbot";
602 auto widget = preview.createRatingWidget(existing_review);
603 ASSERT_EQ(widget.widget_type(), "rating-edit");
604}
605
587class FakeCancelPurchasePreview : public click::CancelPurchasePreview {606class FakeCancelPurchasePreview : public click::CancelPurchasePreview {
588public:607public:
589 FakeCancelPurchasePreview(const unity::scopes::Result& result, bool installed)608 FakeCancelPurchasePreview(const unity::scopes::Result& result, bool installed)

Subscribers

People subscribed via source and target branches

to all changes: